15 Fin(univ(A)) <= univ(A) |
15 Fin(univ(A)) <= univ(A) |
16 *) |
16 *) |
17 |
17 |
18 structure Fin = Inductive_Fun |
18 structure Fin = Inductive_Fun |
19 (val thy = Arith.thy |> add_consts [("Fin", "i=>i", NoSyn)] |
19 (val thy = Arith.thy |> add_consts [("Fin", "i=>i", NoSyn)] |
|
20 val thy_name = "Fin" |
20 val rec_doms = [("Fin","Pow(A)")] |
21 val rec_doms = [("Fin","Pow(A)")] |
21 val sintrs = ["0 : Fin(A)", |
22 val sintrs = ["0 : Fin(A)", |
22 "[| a: A; b: Fin(A) |] ==> cons(a,b) : Fin(A)"] |
23 "[| a: A; b: Fin(A) |] ==> cons(a,b) : Fin(A)"] |
23 val monos = [] |
24 val monos = [] |
24 val con_defs = [] |
25 val con_defs = [] |
25 val type_intrs = [empty_subsetI, cons_subsetI, PowI] |
26 val type_intrs = [empty_subsetI, cons_subsetI, PowI] |
26 val type_elims = [make_elim PowD]); |
27 val type_elims = [make_elim PowD]); |
27 |
|
28 store_theory "Fin" Fin.thy; |
|
29 |
28 |
30 val [Fin_0I, Fin_consI] = Fin.intrs; |
29 val [Fin_0I, Fin_consI] = Fin.intrs; |
31 |
30 |
32 |
31 |
33 goalw Fin.thy Fin.defs "!!A B. A<=B ==> Fin(A) <= Fin(B)"; |
32 goalw Fin.thy Fin.defs "!!A B. A<=B ==> Fin(A) <= Fin(B)"; |