Step
*
of Lemma
mutual-primitive-recursion
∀[A,B:Type].
  ∀f0:A. ∀g0:B. ∀F:ℕ ⟶ A ⟶ B ⟶ A. ∀G:ℕ ⟶ A ⟶ B ⟶ B.
    ∃f:ℕ ⟶ A
     ∃g:ℕ ⟶ B
      (((f 0) = f0 ∈ A)
      ∧ ((g 0) = g0 ∈ B)
      ∧ (∀s:ℕ+. (((f s) = F[s - 1;f (s - 1);g (s - 1)] ∈ A) ∧ ((g s) = G[s - 1;f (s - 1);g (s - 1)] ∈ B))))
BY
{ (Auto
   THEN (InstConcl [⌜λs.(fst(primrec(s;<f0, g0>λs,p. let x,y = p in <F[s;x;y], G[s;x;y]>)))⌝; 
   ⌜λs.(snd(primrec(s;<f0, g0>λs,p. let x,y = p in <F[s;x;y], G[s;x;y]>)))⌝])⋅
   THEN Reduce 0
   THEN Repeat ((MemCD THEN Try (Complete (Auto))))
   THEN Auto
   THEN ((RW (AddrC [2;1] (LemmaC `primrec-unroll`)) 0) THENA Auto)
   THEN (SplitOnConclITE THENA Auto)
   THEN Reduce 0
   THEN Auto
   THEN (GenConclAtAddr [2; 1; 1])
   THEN D -2
   THEN Reduce 0
   THEN Auto) }
Latex:
Latex:
\mforall{}[A,B:Type].
    \mforall{}f0:A.  \mforall{}g0:B.  \mforall{}F:\mBbbN{}  {}\mrightarrow{}  A  {}\mrightarrow{}  B  {}\mrightarrow{}  A.  \mforall{}G:\mBbbN{}  {}\mrightarrow{}  A  {}\mrightarrow{}  B  {}\mrightarrow{}  B.
        \mexists{}f:\mBbbN{}  {}\mrightarrow{}  A
          \mexists{}g:\mBbbN{}  {}\mrightarrow{}  B
            (((f  0)  =  f0)
            \mwedge{}  ((g  0)  =  g0)
            \mwedge{}  (\mforall{}s:\mBbbN{}\msupplus{}.  (((f  s)  =  F[s  -  1;f  (s  -  1);g  (s  -  1)])  \mwedge{}  ((g  s)  =  G[s  -  1;f  (s  -  1);g  (s  -  1)]))))
By
Latex:
(Auto
  THEN  (InstConcl  [\mkleeneopen{}\mlambda{}s.(fst(primrec(s;<f0,  g0>\mlambda{}s,p.  let  x,y  =  p  in  <F[s;x;y],  G[s;x;y]>)))\mkleeneclose{}; 
  \mkleeneopen{}\mlambda{}s.(snd(primrec(s;<f0,  g0>\mlambda{}s,p.  let  x,y  =  p  in  <F[s;x;y],  G[s;x;y]>)))\mkleeneclose{}])\mcdot{}
  THEN  Reduce  0
  THEN  Repeat  ((MemCD  THEN  Try  (Complete  (Auto))))
  THEN  Auto
  THEN  ((RW  (AddrC  [2;1]  (LemmaC  `primrec-unroll`))  0)  THENA  Auto)
  THEN  (SplitOnConclITE  THENA  Auto)
  THEN  Reduce  0
  THEN  Auto
  THEN  (GenConclAtAddr  [2;  1;  1])
  THEN  D  -2
  THEN  Reduce  0
  THEN  Auto)
Home
Index