Step * 1 1 1 1 1 of Lemma A-eval_wf


1. Val Type
2. : ℕ
3. AType Arr:Type
× idx:ℕn ⟶ Arr ⟶ Val
× upd:ℕn ⟶ Val ⟶ Arr ⟶ Arr
× newarray:Val ⟶ Arr
× ∀[i:ℕn]. ∀[v:Val].  ((idx (newarray v)) v ∈ Val)
× (∀[i,j:ℕn]. ∀[x:Arr]. ∀[v:Val].  ((idx (upd x)) if (i =z j) then else idx fi  ∈ Val))
4. Type
⊢ A-eval(array-model(AType)) ∈ (Arr(AType) ⟶ (T × Arr(AType))) ⟶ Arr(AType) ⟶ T
BY
RepUR ``A-eval array-model Arr`` }

1
1. Val Type
2. : ℕ
3. AType Arr:Type
× idx:ℕn ⟶ Arr ⟶ Val
× upd:ℕn ⟶ Val ⟶ Arr ⟶ Arr
× newarray:Val ⟶ Arr
× ∀[i:ℕn]. ∀[v:Val].  ((idx (newarray v)) v ∈ Val)
× (∀[i,j:ℕn]. ∀[x:Arr]. ∀[v:Val].  ((idx (upd x)) if (i =z j) then else idx fi  ∈ Val))
4. Type
⊢ λm,A. (fst((m A))) ∈ ((fst(AType)) ⟶ (T × (fst(AType)))) ⟶ (fst(AType)) ⟶ T


Latex:


Latex:

1.  Val  :  Type
2.  n  :  \mBbbN{}
3.  AType  :  Arr:Type
\mtimes{}  idx:\mBbbN{}n  {}\mrightarrow{}  Arr  {}\mrightarrow{}  Val
\mtimes{}  upd:\mBbbN{}n  {}\mrightarrow{}  Val  {}\mrightarrow{}  Arr  {}\mrightarrow{}  Arr
\mtimes{}  newarray:Val  {}\mrightarrow{}  Arr
\mtimes{}  \mforall{}[i:\mBbbN{}n].  \mforall{}[v:Val].    ((idx  i  (newarray  v))  =  v)
\mtimes{}  (\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  ))
4.  T  :  Type
\mvdash{}  A-eval(array-model(AType))  \mmember{}  (Arr(AType)  {}\mrightarrow{}  (T  \mtimes{}  Arr(AType)))  {}\mrightarrow{}  Arr(AType)  {}\mrightarrow{}  T


By


Latex:
RepUR  ``A-eval  array-model  Arr``  0




Home Index