src/HOL/Lambda/Eta.thy
changeset 11638 2c3dee321b4b
parent 11183 0476c6e07bca
child 12011 1a3a7b3cd9bb
equal deleted inserted replaced
11637:647e6c84323c 11638:2c3dee321b4b
    29   "s -e> t" == "(s, t) \<in> eta"
    29   "s -e> t" == "(s, t) \<in> eta"
    30   "s -e>> t" == "(s, t) \<in> eta^*"
    30   "s -e>> t" == "(s, t) \<in> eta^*"
    31   "s -e>= t" == "(s, t) \<in> eta^="
    31   "s -e>= t" == "(s, t) \<in> eta^="
    32 
    32 
    33 inductive eta
    33 inductive eta
    34   intros [simp, intro]
    34   intros
    35     eta: "\<not> free s 0 ==> Abs (s $ Var 0) -e> s[dummy/0]"
    35     eta [simp, intro]: "\<not> free s 0 ==> Abs (s $ Var 0) -e> s[dummy/0]"
    36     appL: "s -e> t ==> s $ u -e> t $ u"
    36     appL [simp, intro]: "s -e> t ==> s $ u -e> t $ u"
    37     appR: "s -e> t ==> u $ s -e> u $ t"
    37     appR [simp, intro]: "s -e> t ==> u $ s -e> u $ t"
    38     abs: "s -e> t ==> Abs s -e> Abs t"
    38     abs [simp, intro]: "s -e> t ==> Abs s -e> Abs t"
    39 
    39 
    40 inductive_cases eta_cases [elim!]:
    40 inductive_cases eta_cases [elim!]:
    41   "Abs s -e> z"
    41   "Abs s -e> z"
    42   "s $ t -e> u"
    42   "s $ t -e> u"
    43   "Var i -e> t"
    43   "Var i -e> t"