src/LCF/LCF.thy
changeset 3837 d7f033c74b38
parent 1474 3f7d67927fe2
child 17248 81bf91654e73
equal deleted inserted replaced
3836:f1a1817659e6 3837:d7f033c74b38
    97   (** Admissibility / Chain Completeness **)
    97   (** Admissibility / Chain Completeness **)
    98   (* All rules can be found on pages 199--200 of Larry's LCF book.
    98   (* All rules can be found on pages 199--200 of Larry's LCF book.
    99      Note that "easiness" of types is not taken into account
    99      Note that "easiness" of types is not taken into account
   100      because it cannot be expressed schematically; flatness could be. *)
   100      because it cannot be expressed schematically; flatness could be. *)
   101 
   101 
   102   adm_less      "adm(%x.t(x) << u(x))"
   102   adm_less      "adm(%x. t(x) << u(x))"
   103   adm_not_less  "adm(%x.~ t(x) << u)"
   103   adm_not_less  "adm(%x.~ t(x) << u)"
   104   adm_not_free  "adm(%x.A)"
   104   adm_not_free  "adm(%x. A)"
   105   adm_subst     "adm(P) ==> adm(%x.P(t(x)))"
   105   adm_subst     "adm(P) ==> adm(%x. P(t(x)))"
   106   adm_conj      "[| adm(P); adm(Q) |] ==> adm(%x.P(x)&Q(x))"
   106   adm_conj      "[| adm(P); adm(Q) |] ==> adm(%x. P(x)&Q(x))"
   107   adm_disj      "[| adm(P); adm(Q) |] ==> adm(%x.P(x)|Q(x))"
   107   adm_disj      "[| adm(P); adm(Q) |] ==> adm(%x. P(x)|Q(x))"
   108   adm_imp       "[| adm(%x.~P(x)); adm(Q) |] ==> adm(%x.P(x)-->Q(x))"
   108   adm_imp       "[| adm(%x.~P(x)); adm(Q) |] ==> adm(%x. P(x)-->Q(x))"
   109   adm_all       "(!!y.adm(P(y))) ==> adm(%x.ALL y.P(y,x))"
   109   adm_all       "(!!y. adm(P(y))) ==> adm(%x. ALL y. P(y,x))"
   110 end
   110 end