Step * 1 of Lemma A-null-property


1. Val Type
2. : ℕ
3. AType array{i:l}(Val;n)
4. Arr(AType)@i
5. : ℕn@i
⊢ (A-eval(array-model(AType)) 
   (A-bind(array-model(AType)) (A-return(array-model(AType)) ⋅
    x.(A-coerce(array-model(AType)) (A-fetch'(array-model(AType)) k)))) 
   A)
(idx(AType) A)
∈ Val
BY
ExposeArrayOps (-3) }

1
1. Val Type
2. : ℕ
3. Arr Type
4. idx : ℕn ⟶ Arr ⟶ Val
5. upd : ℕn ⟶ Val ⟶ Arr ⟶ Arr
6. newarray Val ⟶ Arr
7. A5 : ∀[i:ℕn]. ∀[v:Val].  ((idx (newarray v)) v ∈ Val)
8. A6 : ∀[i,j:ℕn]. ∀[x:Arr]. ∀[v:Val].  ((idx (upd x)) if (i =z j) then else idx fi  ∈ Val)
9. Arr@i
10. : ℕn@i
⊢ (A-eval(array-model(<Arr, idx, upd, newarray, A5, A6>)) 
   (A-bind(array-model(<Arr, idx, upd, newarray, A5, A6>)) (A-return(array-model(<Arr, idx, upd, newarray, A5, A6>)) ⋅
    x.(A-coerce(array-model(<Arr, idx, upd, newarray, A5, A6>)) (A-fetch'(array-model(<Arr, idx, upd, newarray, A5, A6\000C>)) k)))) 
   A)
(idx(<Arr, idx, upd, newarray, A5, A6>A)
∈ Val


Latex:


Latex:

1.  Val  :  Type
2.  n  :  \mBbbN{}
3.  AType  :  array\{i:l\}(Val;n)
4.  A  :  Arr(AType)@i
5.  k  :  \mBbbN{}n@i
\mvdash{}  (A-eval(array-model(AType)) 
      (A-bind(array-model(AType))  (A-return(array-model(AType))  \mcdot{}) 
        (\mlambda{}x.(A-coerce(array-model(AType))  (A-fetch'(array-model(AType))  k)))) 
      A)
=  (idx(AType)  k  A)


By


Latex:
ExposeArrayOps  (-3)




Home Index