# HG changeset patch # User lcp # Date 751804357 -3600 # Node ID 914270f33f2db157165015d0a185a0440067d556 # Parent 01d6c0ddaae38d6cf58181d9a8e06e7ca384d63f minor changes e.g. datatype_elims diff -r 01d6c0ddaae3 -r 914270f33f2d src/ZF/ex/Data.ML --- a/src/ZF/ex/Data.ML Thu Oct 28 11:30:35 1993 +0100 +++ b/src/ZF/ex/Data.ML Thu Oct 28 11:32:37 1993 +0100 @@ -11,17 +11,17 @@ (val thy = Univ.thy; val rec_specs = [("data", "univ(A Un B)", - [(["Zero"], "i"), - (["One"], "i=>i"), - (["Two"], "[i,i]=>i"), - (["Three"], "[i,i,i]=>i")])]; + [(["Con0"], "i"), + (["Con1"], "i=>i"), + (["Con2"], "[i,i]=>i"), + (["Con3"], "[i,i,i]=>i")])]; val rec_styp = "[i,i]=>i"; val ext = None val sintrs = - ["Zero : data(A,B)", - "[| a: A |] ==> One(a) : data(A,B)", - "[| a: A; b: B |] ==> Two(a,b) : data(A,B)", - "[| a: A; b: B; d: data(A,B) |] ==> Three(a,b,d) : data(A,B)"]; + ["Con0 : data(A,B)", + "[| a: A |] ==> Con1(a) : data(A,B)", + "[| a: A; b: B |] ==> Con2(a,b) : data(A,B)", + "[| a: A; b: B; d: data(A,B) |] ==> Con3(a,b,d) : data(A,B)"]; val monos = []; val type_intrs = datatype_intrs val type_elims = datatype_elims); diff -r 01d6c0ddaae3 -r 914270f33f2d src/ZF/ex/LList.ML --- a/src/ZF/ex/LList.ML Thu Oct 28 11:30:35 1993 +0100 +++ b/src/ZF/ex/LList.ML Thu Oct 28 11:32:37 1993 +0100 @@ -4,9 +4,6 @@ Copyright 1993 University of Cambridge Co-Datatype definition of Lazy Lists - -Needs a "take-lemma" to prove llist_subset_quniv and to justify co-induction -for proving equality *) structure LList = Co_Datatype_Fun @@ -22,7 +19,7 @@ "[| a: A; l: llist(A) |] ==> LCons(a,l) : llist(A)"]; val monos = []; val type_intrs = co_datatype_intrs - val type_elims = []); + val type_elims = co_datatype_elims); val [LNilI, LConsI] = LList.intrs; diff -r 01d6c0ddaae3 -r 914270f33f2d src/ZF/ex/ListN.ML --- a/src/ZF/ex/ListN.ML Thu Oct 28 11:30:35 1993 +0100 +++ b/src/ZF/ex/ListN.ML Thu Oct 28 11:32:37 1993 +0100 @@ -55,4 +55,7 @@ val listn_append = result(); val Nil_listn_case = ListN.mk_cases List.con_defs " : listn(A)" -and Cons_listn_case = ListN.mk_cases List.con_defs " : listn(A)"; +and Cons_listn_case = ListN.mk_cases List.con_defs " : listn(A)"; + +val zero_listn_case = ListN.mk_cases List.con_defs "<0,l> : listn(A)" +and succ_listn_case = ListN.mk_cases List.con_defs " : listn(A)"; diff -r 01d6c0ddaae3 -r 914270f33f2d src/ZF/ex/data.ML --- a/src/ZF/ex/data.ML Thu Oct 28 11:30:35 1993 +0100 +++ b/src/ZF/ex/data.ML Thu Oct 28 11:32:37 1993 +0100 @@ -11,17 +11,17 @@ (val thy = Univ.thy; val rec_specs = [("data", "univ(A Un B)", - [(["Zero"], "i"), - (["One"], "i=>i"), - (["Two"], "[i,i]=>i"), - (["Three"], "[i,i,i]=>i")])]; + [(["Con0"], "i"), + (["Con1"], "i=>i"), + (["Con2"], "[i,i]=>i"), + (["Con3"], "[i,i,i]=>i")])]; val rec_styp = "[i,i]=>i"; val ext = None val sintrs = - ["Zero : data(A,B)", - "[| a: A |] ==> One(a) : data(A,B)", - "[| a: A; b: B |] ==> Two(a,b) : data(A,B)", - "[| a: A; b: B; d: data(A,B) |] ==> Three(a,b,d) : data(A,B)"]; + ["Con0 : data(A,B)", + "[| a: A |] ==> Con1(a) : data(A,B)", + "[| a: A; b: B |] ==> Con2(a,b) : data(A,B)", + "[| a: A; b: B; d: data(A,B) |] ==> Con3(a,b,d) : data(A,B)"]; val monos = []; val type_intrs = datatype_intrs val type_elims = datatype_elims); diff -r 01d6c0ddaae3 -r 914270f33f2d src/ZF/ex/listn.ML --- a/src/ZF/ex/listn.ML Thu Oct 28 11:30:35 1993 +0100 +++ b/src/ZF/ex/listn.ML Thu Oct 28 11:32:37 1993 +0100 @@ -55,4 +55,7 @@ val listn_append = result(); val Nil_listn_case = ListN.mk_cases List.con_defs " : listn(A)" -and Cons_listn_case = ListN.mk_cases List.con_defs " : listn(A)"; +and Cons_listn_case = ListN.mk_cases List.con_defs " : listn(A)"; + +val zero_listn_case = ListN.mk_cases List.con_defs "<0,l> : listn(A)" +and succ_listn_case = ListN.mk_cases List.con_defs " : listn(A)"; diff -r 01d6c0ddaae3 -r 914270f33f2d src/ZF/ex/llist.ML --- a/src/ZF/ex/llist.ML Thu Oct 28 11:30:35 1993 +0100 +++ b/src/ZF/ex/llist.ML Thu Oct 28 11:32:37 1993 +0100 @@ -4,9 +4,6 @@ Copyright 1993 University of Cambridge Co-Datatype definition of Lazy Lists - -Needs a "take-lemma" to prove llist_subset_quniv and to justify co-induction -for proving equality *) structure LList = Co_Datatype_Fun @@ -22,7 +19,7 @@ "[| a: A; l: llist(A) |] ==> LCons(a,l) : llist(A)"]; val monos = []; val type_intrs = co_datatype_intrs - val type_elims = []); + val type_elims = co_datatype_elims); val [LNilI, LConsI] = LList.intrs;