Step * 1 1 of Lemma canonicalizable-function

.....equality..... 
1. Type
2. T ⊆Base
3. value-type(T)
4. T ⟶ Type
5. ∀x:T. (B[x] ⊆Base)
6. Base
7. ∀x:T. ((f x) x ∈ T)
8. ∀x:Base. ((f x)↓  (x ∈ T))
9. Base
10. Base
11. b ∈ (x:T ⟶ B[x])
⊢ λx.eval in
     ~ λx.eval in
              z
BY
(SqEqCD
   THEN SqequalSqle⋅
   THEN AssumeHasValue
   THEN (HasValueD (-1) ORELSE (ExceptionCases (-1) THEN Try (SameException)))
   THEN Try ((CallByValueReduce THENA Auto))
   THEN (FHyp [-1] THENA Auto)
   THEN (InstHyp [⌜x⌝7⋅ THENA Auto)
   THEN (Assert ⌜∀a,b:x:T ⟶ B[x].  ((a b ∈ (x:T ⟶ B[x]))  ((a (f x)) (b (f x)) ∈ B[x]))⌝⋅ THENA Auto)
   THEN (FHyp (-1) [11] THENA Auto)
   THEN HypSubst' (-1) 0
   THEN Auto) }


Latex:


Latex:
.....equality..... 
1.  T  :  Type
2.  T  \msubseteq{}r  Base
3.  value-type(T)
4.  B  :  T  {}\mrightarrow{}  Type
5.  \mforall{}x:T.  (B[x]  \msubseteq{}r  Base)
6.  f  :  Base
7.  \mforall{}x:T.  ((f  x)  =  x)
8.  \mforall{}x:Base.  ((f  x)\mdownarrow{}  {}\mRightarrow{}  (x  \mmember{}  T))
9.  a  :  Base
10.  b  :  Base
11.  c  :  a  =  b
\mvdash{}  \mlambda{}x.eval  z  =  f  x  in
          a  z  \msim{}  \mlambda{}x.eval  z  =  f  x  in
                            b  z


By


Latex:
(SqEqCD
  THEN  SqequalSqle\mcdot{}
  THEN  AssumeHasValue
  THEN  (HasValueD  (-1)  ORELSE  (ExceptionCases  (-1)  THEN  Try  (SameException)))
  THEN  Try  ((CallByValueReduce  0  THENA  Auto))
  THEN  (FHyp  8  [-1]  THENA  Auto)
  THEN  (InstHyp  [\mkleeneopen{}x\mkleeneclose{}]  7\mcdot{}  THENA  Auto)
  THEN  (Assert  \mkleeneopen{}\mforall{}a,b:x:T  {}\mrightarrow{}  B[x].    ((a  =  b)  {}\mRightarrow{}  ((a  (f  x))  =  (b  (f  x))))\mkleeneclose{}\mcdot{}  THENA  Auto)
  THEN  (FHyp  (-1)  [11]  THENA  Auto)
  THEN  HypSubst'  (-1)  0
  THEN  Auto)




Home Index