src/CCL/Hered.ML
changeset 289 78541329ff35
parent 8 c3d2c6dcf3f0
child 642 0db578095e6a
equal deleted inserted replaced
288:b00ce6a1fe27 289:78541329ff35
    68                            "inl(a) : HTT <-> a : HTT",
    68                            "inl(a) : HTT <-> a : HTT",
    69                            "inr(b) : HTT <-> b : HTT",
    69                            "inr(b) : HTT <-> b : HTT",
    70                            "zero : HTT",
    70                            "zero : HTT",
    71                            "succ(n) : HTT <-> n : HTT",
    71                            "succ(n) : HTT <-> n : HTT",
    72                            "[] : HTT",
    72                            "[] : HTT",
    73                            "x.xs : HTT <-> x : HTT & xs : HTT"];
    73                            "x$xs : HTT <-> x : HTT & xs : HTT"];
    74 end;
    74 end;
    75 
    75 
    76 val HTT_Is = HTT_rews @ (HTT_rews RL [iffD2]);
    76 val HTT_Is = HTT_rews @ (HTT_rews RL [iffD2]);
    77 
    77 
    78 (*** Coinduction for HTT ***)
    78 (*** Coinduction for HTT ***)
   106         "zero : HTTgen(lfp(%x. HTTgen(x) Un R Un HTT))",
   106         "zero : HTTgen(lfp(%x. HTTgen(x) Un R Un HTT))",
   107         "n : lfp(%x. HTTgen(x) Un R Un HTT) ==> \
   107         "n : lfp(%x. HTTgen(x) Un R Un HTT) ==> \
   108 \                         succ(n) : HTTgen(lfp(%x. HTTgen(x) Un R Un HTT))",
   108 \                         succ(n) : HTTgen(lfp(%x. HTTgen(x) Un R Un HTT))",
   109         "[] : HTTgen(lfp(%x. HTTgen(x) Un R Un HTT))",
   109         "[] : HTTgen(lfp(%x. HTTgen(x) Un R Un HTT))",
   110         "[| h : lfp(%x. HTTgen(x) Un R Un HTT); t : lfp(%x. HTTgen(x) Un R Un HTT) |] ==>\
   110         "[| h : lfp(%x. HTTgen(x) Un R Un HTT); t : lfp(%x. HTTgen(x) Un R Un HTT) |] ==>\
   111 \                         h.t : HTTgen(lfp(%x. HTTgen(x) Un R Un HTT))"];
   111 \                         h$t : HTTgen(lfp(%x. HTTgen(x) Un R Un HTT))"];
   112 
   112 
   113 (*** Formation Rules for Types ***)
   113 (*** Formation Rules for Types ***)
   114 
   114 
   115 goal Hered.thy "Unit <= HTT";
   115 goal Hered.thy "Unit <= HTT";
   116 by (simp_tac (CCL_ss addsimps ([subsetXH,UnitXH] @ HTT_rews)) 1);
   116 by (simp_tac (CCL_ss addsimps ([subsetXH,UnitXH] @ HTT_rews)) 1);