Step
*
1
of Lemma
fpf-sub-val2
1. [A] : Type
2. [A'] : Type
3. strong-subtype(A;A')
4. [B] : A ⟶ Type
5. eq : EqDecider(A')@i
6. f : a:A fp-> B[a]@i
7. g : a:A fp-> B[a]@i
8. x : A'@i
9. [P] : a:A ⟶ B[a] ⟶ ℙ
10. [Q] : a:A ⟶ B[a] ⟶ ℙ
11. ∀x:A. ∀z:B[x].  (P[x;z] 
⇒ Q[x;z])
12. g ⊆ f
⊢ z != f(x) ==> P[x;z] 
⇒ z != g(x) ==> Q[x;z]
BY
{ TACTIC:AssertBY ⌜eq ∈ EqDecider(A)⌝
  (SubsumeC ⌜EqDecider(A')⌝⋅ THEN Auto THEN BLemma `strong-subtype-deq-subtype` THEN Auto)⋅ }
1
1. [A] : Type
2. [A'] : Type
3. strong-subtype(A;A')
4. [B] : A ⟶ Type
5. eq : EqDecider(A')@i
6. f : a:A fp-> B[a]@i
7. g : a:A fp-> B[a]@i
8. x : A'@i
9. [P] : a:A ⟶ B[a] ⟶ ℙ
10. [Q] : a:A ⟶ B[a] ⟶ ℙ
11. ∀x:A. ∀z:B[x].  (P[x;z] 
⇒ Q[x;z])
12. g ⊆ f
13. eq ∈ EqDecider(A)
⊢ z != f(x) ==> P[x;z] 
⇒ z != g(x) ==> Q[x;z]
Latex:
Latex:
1.  [A]  :  Type
2.  [A']  :  Type
3.  strong-subtype(A;A')
4.  [B]  :  A  {}\mrightarrow{}  Type
5.  eq  :  EqDecider(A')@i
6.  f  :  a:A  fp->  B[a]@i
7.  g  :  a:A  fp->  B[a]@i
8.  x  :  A'@i
9.  [P]  :  a:A  {}\mrightarrow{}  B[a]  {}\mrightarrow{}  \mBbbP{}
10.  [Q]  :  a:A  {}\mrightarrow{}  B[a]  {}\mrightarrow{}  \mBbbP{}
11.  \mforall{}x:A.  \mforall{}z:B[x].    (P[x;z]  {}\mRightarrow{}  Q[x;z])
12.  g  \msubseteq{}  f
\mvdash{}  z  !=  f(x)  ==>  P[x;z]  {}\mRightarrow{}  z  !=  g(x)  ==>  Q[x;z]
By
Latex:
TACTIC:AssertBY  \mkleeneopen{}eq  \mmember{}  EqDecider(A)\mkleeneclose{}
    (SubsumeC  \mkleeneopen{}EqDecider(A')\mkleeneclose{}\mcdot{}  THEN  Auto  THEN  BLemma  `strong-subtype-deq-subtype`  THEN  Auto)\mcdot{}
Home
Index