Step * of Lemma fetch'-commutes

[Val,S:Type]. ∀[n:ℕ]. ∀[AType:array{i:l}(Val;n)]. ∀[prog:Val ⟶ Val ⟶ (A-map'(array-model(AType)) S)].
  ∀j,k:ℕn.
    ((A-bind'(array-model(AType)) (A-fetch'(array-model(AType)) k) 
      val@k.(A-bind'(array-model(AType)) (A-fetch'(array-model(AType)) j) val@j.(prog val@k val@j)))))
    (A-bind'(array-model(AType)) (A-fetch'(array-model(AType)) j) 
       val@j.(A-bind'(array-model(AType)) (A-fetch'(array-model(AType)) k) val@k.(prog val@k val@j)))))
    ∈ (A-map'(array-model(AType)) S))
BY
(Auto THEN ExposeArrayOps THEN ComputeArrayOps 0) }

1
1. Val Type
2. Type
3. : ℕ
4. Arr Type
5. idx : ℕn ⟶ Arr ⟶ Val
6. upd : ℕn ⟶ Val ⟶ Arr ⟶ Arr
7. newarray Val ⟶ Arr
8. A5 : ∀[i:ℕn]. ∀[v:Val].  ((idx (newarray v)) v ∈ Val)
9. A6 : ∀[i,j:ℕn]. ∀[x:Arr]. ∀[v:Val].  ((idx (upd x)) if (i =z j) then else idx fi  ∈ Val)
10. prog Val ⟶ Val ⟶ (A-map'(array-model(<Arr, idx, upd, newarray, A5, A6>)) S)
11. : ℕn
12. : ℕn
⊢ A.(prog (idx A) (idx A) A)) A.(prog (idx A) (idx A) A)) ∈ (Arr ⟶ S)


Latex:


Latex:
\mforall{}[Val,S:Type].  \mforall{}[n:\mBbbN{}].  \mforall{}[AType:array\{i:l\}(Val;n)].  \mforall{}[prog:Val
                                                                                                                    {}\mrightarrow{}  Val
                                                                                                                    {}\mrightarrow{}  (A-map'(array-model(AType))  S)].
    \mforall{}j,k:\mBbbN{}n.
        ((A-bind'(array-model(AType))  (A-fetch'(array-model(AType))  k) 
            (\mlambda{}val@k.(A-bind'(array-model(AType))  (A-fetch'(array-model(AType))  j) 
                              (\mlambda{}val@j.(prog  val@k  val@j)))))
        =  (A-bind'(array-model(AType))  (A-fetch'(array-model(AType))  j) 
              (\mlambda{}val@j.(A-bind'(array-model(AType))  (A-fetch'(array-model(AType))  k) 
                                (\mlambda{}val@k.(prog  val@k  val@j))))))


By


Latex:
(Auto  THEN  ExposeArrayOps  4  THEN  ComputeArrayOps  0)




Home Index