Step * of Lemma array_subtype

[Val1,Val2:Type]. ∀[m,n:ℕ].
  (array{i:l}(Val1;m) ⊆array{i:l}(Val2;n)) supposing ((n ≤ m) and ((Val1 ⊆Val2) ∧ (Val2 ⊆Val1)))
BY
(Unfold `array` THEN Auto) }

1
1. Val1 Type
2. Val2 Type
3. : ℕ
4. : ℕ
5. Val1 ⊆Val2
6. Val2 ⊆Val1
7. n ≤ m
8. Arr Type
9. idx : ℕm ⟶ Arr ⟶ Val1
10. upd : ℕm ⟶ Val1 ⟶ Arr ⟶ Arr
11. newarray Val1 ⟶ Arr
12. : ⋂i:ℕm. ∀[v:Val1]. ((idx (newarray v)) v ∈ Val1)
13. : ℕn
⊢ x ∈ ∀[v:Val2]. ((idx (newarray v)) v ∈ Val2)

2
1. Val1 Type
2. Val2 Type
3. : ℕ
4. : ℕ
5. Val1 ⊆Val2
6. Val2 ⊆Val1
7. n ≤ m
8. Arr Type
9. idx : ℕm ⟶ Arr ⟶ Val1
10. upd : ℕm ⟶ Val1 ⟶ Arr ⟶ Arr
11. newarray Val1 ⟶ Arr
12. ∀[i:ℕm]. ∀[v:Val1].  ((idx (newarray v)) v ∈ Val1)
13. : ⋂i:ℕm. ∀[j:ℕm]. ∀[x:Arr]. ∀[v:Val1].  ((idx (upd x)) if (i =z j) then else idx fi  ∈ Val1)
14. : ℕn
⊢ x ∈ ∀[j:ℕn]. ∀[x:Arr]. ∀[v:Val2].  ((idx (upd x)) if (i =z j) then else idx fi  ∈ Val2)


Latex:


Latex:
\mforall{}[Val1,Val2:Type].  \mforall{}[m,n:\mBbbN{}].
    (array\{i:l\}(Val1;m)  \msubseteq{}r  array\{i:l\}(Val2;n))  supposing 
          ((n  \mleq{}  m)  and 
          ((Val1  \msubseteq{}r  Val2)  \mwedge{}  (Val2  \msubseteq{}r  Val1)))


By


Latex:
(Unfold  `array`  0  THEN  Auto)




Home Index