src/HOL/Proofs/Lambda/Eta.thy
changeset 61985 a63a11b09335
parent 58889 5b7a9633cfa8
child 61986 2461779da2b8
equal deleted inserted replaced
61984:cdea44c775fa 61985:a63a11b09335
    24   | appL [simp, intro]: "s \<rightarrow>\<^sub>\<eta> t ==> s \<degree> u \<rightarrow>\<^sub>\<eta> t \<degree> u"
    24   | appL [simp, intro]: "s \<rightarrow>\<^sub>\<eta> t ==> s \<degree> u \<rightarrow>\<^sub>\<eta> t \<degree> u"
    25   | appR [simp, intro]: "s \<rightarrow>\<^sub>\<eta> t ==> u \<degree> s \<rightarrow>\<^sub>\<eta> u \<degree> t"
    25   | appR [simp, intro]: "s \<rightarrow>\<^sub>\<eta> t ==> u \<degree> s \<rightarrow>\<^sub>\<eta> u \<degree> t"
    26   | abs [simp, intro]: "s \<rightarrow>\<^sub>\<eta> t ==> Abs s \<rightarrow>\<^sub>\<eta> Abs t"
    26   | abs [simp, intro]: "s \<rightarrow>\<^sub>\<eta> t ==> Abs s \<rightarrow>\<^sub>\<eta> Abs t"
    27 
    27 
    28 abbreviation
    28 abbreviation
    29   eta_reds :: "[dB, dB] => bool"   (infixl "-e>>" 50) where
    29   eta_reds :: "[dB, dB] => bool"   (infixl "\<rightarrow>\<^sub>\<eta>\<^sup>*" 50) where
    30   "s -e>> t == eta^** s t"
    30   "s \<rightarrow>\<^sub>\<eta>\<^sup>* t == eta^** s t"
    31 
    31 
    32 abbreviation
    32 abbreviation
    33   eta_red0 :: "[dB, dB] => bool"   (infixl "-e>=" 50) where
    33   eta_red0 :: "[dB, dB] => bool"   (infixl "\<rightarrow>\<^sub>\<eta>\<^sup>=" 50) where
    34   "s -e>= t == eta^== s t"
    34   "s \<rightarrow>\<^sub>\<eta>\<^sup>= t == eta^== s t"
    35 
       
    36 notation (xsymbols)
       
    37   eta_reds  (infixl "\<rightarrow>\<^sub>\<eta>\<^sup>*" 50) and
       
    38   eta_red0  (infixl "\<rightarrow>\<^sub>\<eta>\<^sup>=" 50)
       
    39 
    35 
    40 inductive_cases eta_cases [elim!]:
    36 inductive_cases eta_cases [elim!]:
    41   "Abs s \<rightarrow>\<^sub>\<eta> z"
    37   "Abs s \<rightarrow>\<^sub>\<eta> z"
    42   "s \<degree> t \<rightarrow>\<^sub>\<eta> u"
    38   "s \<degree> t \<rightarrow>\<^sub>\<eta> u"
    43   "Var i \<rightarrow>\<^sub>\<eta> t"
    39   "Var i \<rightarrow>\<^sub>\<eta> t"