Step * of Lemma funtype-split

[T:Type]. ∀[n:ℕ]. ∀[m:ℕ1]. ∀[A:ℕn ⟶ Type].  (funtype(n;A;T) funtype(m;A;funtype(n m;λk.(A (k m));T)) ∈ Type)
BY
(Auto
   THEN (Assert ⌜∃k:ℕ(n (m k) ∈ ℤ)⌝⋅ THENA (InstConcl [⌜m⌝]⋅ THEN Auto'))
   THEN RepeatFor ((D (-3) THENA Auto))
   THEN RepeatFor (MoveToConcl (-2))
   THEN (-1)
   THEN HypSubst' (-1) 0
   THEN ThinVar `n'
   THEN (D THENA Auto)
   THEN Thin (-1)
   THEN (Subst ⌜(m k) k⌝ 0⋅ THENA Auto)
   THEN MoveToConcl (-3)
   THEN MoveToConcl (-2)
   THEN NatInd (-1)
   THEN Auto) }

1
1. : ℤ
2. Type
3. : ℤ
4. 0 ≤ m
5. : ℕ0 ⟶ Type
⊢ funtype(m 0;A;T) funtype(m;A;funtype(0;λk.(A (k m));T)) ∈ Type

2
1. : ℤ
2. 0 < k
3. ∀T:Type. ∀m:ℤ.
     ((0 ≤ m)
      (∀A:ℕ(k 1) ⟶ Type. (funtype(m (k 1);A;T) funtype(m;A;funtype(k 1;λk.(A (k m));T)) ∈ Type)))
4. Type
5. : ℤ
6. 0 ≤ m
7. : ℕk ⟶ Type
⊢ funtype(m k;A;T) funtype(m;A;funtype(k;λk.(A (k m));T)) ∈ Type


Latex:


Latex:
\mforall{}[T:Type].  \mforall{}[n:\mBbbN{}].  \mforall{}[m:\mBbbN{}n  +  1].  \mforall{}[A:\mBbbN{}n  {}\mrightarrow{}  Type].
    (funtype(n;A;T)  =  funtype(m;A;funtype(n  -  m;\mlambda{}k.(A  (k  +  m));T)))


By


Latex:
(Auto
  THEN  (Assert  \mkleeneopen{}\mexists{}k:\mBbbN{}.  (n  =  (m  +  k))\mkleeneclose{}\mcdot{}  THENA  (InstConcl  [\mkleeneopen{}n  -  m\mkleeneclose{}]\mcdot{}  THEN  Auto'))
  THEN  RepeatFor  2  ((D  (-3)  THENA  Auto))
  THEN  RepeatFor  2  (MoveToConcl  (-2))
  THEN  D  (-1)
  THEN  HypSubst'  (-1)  0
  THEN  ThinVar  `n'
  THEN  (D  0  THENA  Auto)
  THEN  Thin  (-1)
  THEN  (Subst  \mkleeneopen{}(m  +  k)  -  m  \msim{}  k\mkleeneclose{}  0\mcdot{}  THENA  Auto)
  THEN  MoveToConcl  (-3)
  THEN  MoveToConcl  (-2)
  THEN  NatInd  (-1)
  THEN  Auto)




Home Index