Step
*
1
2
1
1
1
1
2
of Lemma
omega_step_wf
1. n : ℕ
2. eqs : {L:ℤ List| ||L|| = (n + 1) ∈ ℤ}  List
3. ineqs : {L:ℤ List| ||L|| = (n + 1) ∈ ℤ}  List
4. ¬(n = 0 ∈ ℤ)
5. first-success(λL.find-exact-eq-constraint(L);eqs) ∈ i:ℕ||eqs||
   × x:{x:ℤ List| x = eqs[i] ∈ (ℤ List)} 
   × {i@0:ℕ+||eqs[i]||| |eqs[i][i@0]| = 1 ∈ ℤ} ?
6. i : ℕ||eqs||
7. x : {x:ℤ List| x = eqs[i] ∈ (ℤ List)} 
8. x2 : {i@0:ℕ+||eqs[i]||| |eqs[i][i@0]| = 1 ∈ ℤ} 
9. first-success(λL.find-exact-eq-constraint(L);eqs)
= (inl <i, x, x2>)
∈ (i:ℕ||eqs|| × x:{x:ℤ List| x = eqs[i] ∈ (ℤ List)}  × {i@0:ℕ+||eqs[i]||| |eqs[i][i@0]| = 1 ∈ ℤ} ?)
10. xx : {l:ℤ List| ||l|| = ((n - 1) + 1) ∈ ℤ}  List
11. exact-reduce-constraints(x;x2;eqs) = xx ∈ ({l:ℤ List| ||l|| = ((n - 1) + 1) ∈ ℤ}  List)
⊢ case gcd-reduce-eq-constraints([];xx)
   of inl(eqs') =>
   case gcd-reduce-ineq-constraints([];exact-reduce-constraints(x;x2;ineqs))
    of inl(ineqs') =>
    inl <eqs', ineqs'>
    | inr(x) =>
    inr x 
   | inr(x) =>
   inr x  ∈ IntConstraints
BY
{ TACTIC:GenConcl ⌜gcd-reduce-eq-constraints([];xx) = xxx ∈ ({L:ℤ List| ||L|| = ((n - 1) + 1) ∈ ℤ}  List?)⌝⋅ }
1
.....wf..... 
1. n : ℕ
2. eqs : {L:ℤ List| ||L|| = (n + 1) ∈ ℤ}  List
3. ineqs : {L:ℤ List| ||L|| = (n + 1) ∈ ℤ}  List
4. ¬(n = 0 ∈ ℤ)
5. first-success(λL.find-exact-eq-constraint(L);eqs) ∈ i:ℕ||eqs||
   × x:{x:ℤ List| x = eqs[i] ∈ (ℤ List)} 
   × {i@0:ℕ+||eqs[i]||| |eqs[i][i@0]| = 1 ∈ ℤ} ?
6. i : ℕ||eqs||
7. x : {x:ℤ List| x = eqs[i] ∈ (ℤ List)} 
8. x2 : {i@0:ℕ+||eqs[i]||| |eqs[i][i@0]| = 1 ∈ ℤ} 
9. first-success(λL.find-exact-eq-constraint(L);eqs)
= (inl <i, x, x2>)
∈ (i:ℕ||eqs|| × x:{x:ℤ List| x = eqs[i] ∈ (ℤ List)}  × {i@0:ℕ+||eqs[i]||| |eqs[i][i@0]| = 1 ∈ ℤ} ?)
10. xx : {l:ℤ List| ||l|| = ((n - 1) + 1) ∈ ℤ}  List
11. exact-reduce-constraints(x;x2;eqs) = xx ∈ ({l:ℤ List| ||l|| = ((n - 1) + 1) ∈ ℤ}  List)
⊢ gcd-reduce-eq-constraints([];xx) ∈ {L:ℤ List| ||L|| = ((n - 1) + 1) ∈ ℤ}  List?
2
1. n : ℕ
2. eqs : {L:ℤ List| ||L|| = (n + 1) ∈ ℤ}  List
3. ineqs : {L:ℤ List| ||L|| = (n + 1) ∈ ℤ}  List
4. ¬(n = 0 ∈ ℤ)
5. first-success(λL.find-exact-eq-constraint(L);eqs) ∈ i:ℕ||eqs||
   × x:{x:ℤ List| x = eqs[i] ∈ (ℤ List)} 
   × {i@0:ℕ+||eqs[i]||| |eqs[i][i@0]| = 1 ∈ ℤ} ?
6. i : ℕ||eqs||
7. x : {x:ℤ List| x = eqs[i] ∈ (ℤ List)} 
8. x2 : {i@0:ℕ+||eqs[i]||| |eqs[i][i@0]| = 1 ∈ ℤ} 
9. first-success(λL.find-exact-eq-constraint(L);eqs)
= (inl <i, x, x2>)
∈ (i:ℕ||eqs|| × x:{x:ℤ List| x = eqs[i] ∈ (ℤ List)}  × {i@0:ℕ+||eqs[i]||| |eqs[i][i@0]| = 1 ∈ ℤ} ?)
10. xx : {l:ℤ List| ||l|| = ((n - 1) + 1) ∈ ℤ}  List
11. exact-reduce-constraints(x;x2;eqs) = xx ∈ ({l:ℤ List| ||l|| = ((n - 1) + 1) ∈ ℤ}  List)
12. xxx : {L:ℤ List| ||L|| = ((n - 1) + 1) ∈ ℤ}  List?
13. gcd-reduce-eq-constraints([];xx) = xxx ∈ ({L:ℤ List| ||L|| = ((n - 1) + 1) ∈ ℤ}  List?)
⊢ case xxx
   of inl(eqs') =>
   case gcd-reduce-ineq-constraints([];exact-reduce-constraints(x;x2;ineqs))
    of inl(ineqs') =>
    inl <eqs', ineqs'>
    | inr(x) =>
    inr x 
   | inr(x) =>
   inr x  ∈ IntConstraints
Latex:
Latex:
1.  n  :  \mBbbN{}
2.  eqs  :  \{L:\mBbbZ{}  List|  ||L||  =  (n  +  1)\}    List
3.  ineqs  :  \{L:\mBbbZ{}  List|  ||L||  =  (n  +  1)\}    List
4.  \mneg{}(n  =  0)
5.  first-success(\mlambda{}L.find-exact-eq-constraint(L);eqs)  \mmember{}  i:\mBbbN{}||eqs||
      \mtimes{}  x:\{x:\mBbbZ{}  List|  x  =  eqs[i]\} 
      \mtimes{}  \{i@0:\mBbbN{}\msupplus{}||eqs[i]|||  |eqs[i][i@0]|  =  1\}  ?
6.  i  :  \mBbbN{}||eqs||
7.  x  :  \{x:\mBbbZ{}  List|  x  =  eqs[i]\} 
8.  x2  :  \{i@0:\mBbbN{}\msupplus{}||eqs[i]|||  |eqs[i][i@0]|  =  1\} 
9.  first-success(\mlambda{}L.find-exact-eq-constraint(L);eqs)  =  (inl  <i,  x,  x2>)
10.  xx  :  \{l:\mBbbZ{}  List|  ||l||  =  ((n  -  1)  +  1)\}    List
11.  exact-reduce-constraints(x;x2;eqs)  =  xx
\mvdash{}  case  gcd-reduce-eq-constraints([];xx)
      of  inl(eqs')  =>
      case  gcd-reduce-ineq-constraints([];exact-reduce-constraints(x;x2;ineqs))
        of  inl(ineqs')  =>
        inl  <eqs',  ineqs'>
        |  inr(x)  =>
        inr  x 
      |  inr(x)  =>
      inr  x    \mmember{}  IntConstraints
By
Latex:
TACTIC:GenConcl  \mkleeneopen{}gcd-reduce-eq-constraints([];xx)  =  xxx\mkleeneclose{}\mcdot{}
Home
Index