Step
*
1
2
1
1
1
1
of Lemma
A-loop_wf
1. Val : Type
2. n : ℕ
3. AType : array{i:l}(Val;n)
4. lo : ℕn
5. k : ℤ
6. 0 < k
7. k - 1 < n - lo 
⇒ (∀body:{lo..lo + (k - 1)-} ⟶ (A-map Unit). (A-loop(AType;lo;lo + (k - 1);body) ∈ A-map Unit))
8. k < n - lo
9. body : {lo..lo + k-} ⟶ (A-map Unit)
10. A-loop(AType;lo;lo + (k - 1);body) ∈ A-map Unit
11. lo < lo + k
12. (lo + (k - 1)) = ((lo + k) - 1) ∈ ℤ
13. A-loop(AType;lo;(lo + k) - 1;body) ∈ A-map Unit
⊢ A-bind(array-model(AType)) A-loop(AType;lo;(lo + k) - 1;body) (λx.(body ((lo + k) - 1))) ∈ A-map Unit
BY
{ (InstLemma `A-bind_wf` [⌜Val⌝;⌜n⌝;⌜AType⌝;⌜Unit⌝;⌜Unit⌝]⋅ THEN Auto THEN SupInf THEN Auto) }
Latex:
Latex:
1.  Val  :  Type
2.  n  :  \mBbbN{}
3.  AType  :  array\{i:l\}(Val;n)
4.  lo  :  \mBbbN{}n
5.  k  :  \mBbbZ{}
6.  0  <  k
7.  k  -  1  <  n  -  lo
{}\mRightarrow{}  (\mforall{}body:\{lo..lo  +  (k  -  1)\msupminus{}\}  {}\mrightarrow{}  (A-map  Unit).  (A-loop(AType;lo;lo  +  (k  -  1);body)  \mmember{}  A-map  Unit))
8.  k  <  n  -  lo
9.  body  :  \{lo..lo  +  k\msupminus{}\}  {}\mrightarrow{}  (A-map  Unit)
10.  A-loop(AType;lo;lo  +  (k  -  1);body)  \mmember{}  A-map  Unit
11.  lo  <  lo  +  k
12.  (lo  +  (k  -  1))  =  ((lo  +  k)  -  1)
13.  A-loop(AType;lo;(lo  +  k)  -  1;body)  \mmember{}  A-map  Unit
\mvdash{}  A-bind(array-model(AType))  A-loop(AType;lo;(lo  +  k)  -  1;body)  (\mlambda{}x.(body  ((lo  +  k)  -  1)))  \mmember{}  A-map 
                                                                                                                                                                                          Unit
By
Latex:
(InstLemma  `A-bind\_wf`  [\mkleeneopen{}Val\mkleeneclose{};\mkleeneopen{}n\mkleeneclose{};\mkleeneopen{}AType\mkleeneclose{};\mkleeneopen{}Unit\mkleeneclose{};\mkleeneopen{}Unit\mkleeneclose{}]\mcdot{}  THEN  Auto  THEN  SupInf  THEN  Auto)
Home
Index