Step * 1 of Lemma coerce-fetch'-commutes


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 S)
11. : ℕn
12. : ℕn
⊢ A.(prog (idx A) (idx A) A)) A.(prog (idx A) (idx A) A)) ∈ (Arr ⟶ (S × Arr))
BY
(((ExtWith [`B'][⌜Top ⟶ Top⌝])⋅ THENA Auto)
   THEN Reduce 0
   THEN Fold `member` 0
   THEN ComputeArrayOps 10
   THEN Try (Complete (Auto))) }


Latex:


Latex:

1.  Val  :  Type
2.  S  :  Type
3.  n  :  \mBbbN{}
4.  Arr  :  Type
5.  idx  :  \mBbbN{}n  {}\mrightarrow{}  Arr  {}\mrightarrow{}  Val
6.  upd  :  \mBbbN{}n  {}\mrightarrow{}  Val  {}\mrightarrow{}  Arr  {}\mrightarrow{}  Arr
7.  newarray  :  Val  {}\mrightarrow{}  Arr
8.  A5  :  \mforall{}[i:\mBbbN{}n].  \mforall{}[v:Val].    ((idx  i  (newarray  v))  =  v)
9.  A6  :  \mforall{}[i,j:\mBbbN{}n].  \mforall{}[x:Arr].  \mforall{}[v:Val].    ((idx  i  (upd  j  v  x))  =  if  (i  =\msubz{}  j)  then  v  else  idx  i  x  fi  )
10.  prog  :  Val  {}\mrightarrow{}  Val  {}\mrightarrow{}  (A-map  S)
11.  j  :  \mBbbN{}n
12.  k  :  \mBbbN{}n
\mvdash{}  (\mlambda{}A.(prog  (idx  k  A)  (idx  j  A)  A))  =  (\mlambda{}A.(prog  (idx  k  A)  (idx  j  A)  A))


By


Latex:
(((ExtWith  [`B'][\mkleeneopen{}Top  {}\mrightarrow{}  Top\mkleeneclose{}])\mcdot{}  THENA  Auto)
  THEN  Reduce  0
  THEN  Fold  `member`  0
  THEN  ComputeArrayOps  10
  THEN  Try  (Complete  (Auto)))




Home Index