| ⊦ cu1 = cu0(nx, ny, nz := a) ↔ #x cu0 = #x cu1 ∧ #y cu0 = #y cu1 ∧ #z cu0 = #z cu1 ∧ (∀ nx0, ny0, nz0. nx0 < #x cu0 ∧ ny0 < #y cu0 ∧ nz0 < #z cu0 → cu1(nx0, ny0, nz0) = (nx = nx0 ∧ ny = ny0 ∧ nz = nz0 ⊃ a;cu0(nx0, ny0, nz0))) |
⊦ #x cu1 = #x cu0 ∧ #y cu1 = #y cu0 ∧ #z cu1 = #z cu0 ∧ (∀ nx0, ny0, nz0. nx0 < #x cu1 ∧ ny0 < #y cu1 ∧ nz0 < #z cu1 → cu1(nx0, ny0, nz0) = cu0(nx, ny, nz := a)(nx0, ny0, nz0)) ↔ #x cu0 = #x cu1 ∧ #y cu0 = #y cu1 ∧ #z cu0 = #z cu1 ∧ (∀ nx0, ny0, nz0. nx0 < #x cu0 ∧ ny0 < #y cu0 ∧ nz0 < #z cu0 → cu1(nx0, ny0, nz0) = (nx = nx0 ∧ ny = ny0 ∧ nz = nz0 ⊃ a;cu0(nx0, ny0, nz0)))
Used simplifier rules: extension: ⊦ cu1 = cu2 ↔ #x cu1 = #x cu2 ∧ #y cu1 = #y cu2 ∧ #z cu1 = #z cu2 ∧ (∀ nx, ny, nz. nx < #x cu1 ∧ ny < #y cu1 ∧ nz < #z cu1 → cu1(nx, ny, nz) = cu2(nx, ny, nz)); width-put: ⊦ #x cu(nx, ny, nz := a) = #x cu; depth-put: ⊦ #y cu(nx, ny, nz := a) = #y cu; height-put: ⊦ #z cu(nx, ny, nz := a) = #z cu;
| ⊦ #x cu1 = #x cu0 ∧ #y cu1 = #y cu0 ∧ #z cu1 = #z cu0 ∧ (∀ nx0, ny0, nz0. nx0 < #x cu1 ∧ ny0 < #y cu1 ∧ nz0 < #z cu1 → cu1(nx0, ny0, nz0) = cu0(nx, ny, nz := a)(nx0, ny0, nz0)) ↔ #x cu0 = #x cu1 ∧ #y cu0 = #y cu1 ∧ #z cu0 = #z cu1 ∧ (∀ nx0, ny0, nz0. nx0 < #x cu0 ∧ ny0 < #y cu0 ∧ nz0 < #z cu0 → cu1(nx0, ny0, nz0) = (nx = nx0 ∧ ny = ny0 ∧ nz = nz0 ⊃ a;cu0(nx0, ny0, nz0))) |
#x cu1 = #x cu0 ⊦ #x cu1 = #x cu0 ∧ #y cu1 = #y cu0 ∧ #z cu1 = #z cu0 ∧ (∀ nx0, ny0, nz0. nx0 < #x cu1 ∧ ny0 < #y cu1 ∧ nz0 < #z cu1 → cu1(nx0, ny0, nz0) = cu0(nx, ny, nz := a)(nx0, ny0, nz0)) ↔ #x cu0 = #x cu1 ∧ #y cu0 = #y cu1 ∧ #z cu0 = #z cu1 ∧ (∀ nx0, ny0, nz0. nx0 < #x cu0 ∧ ny0 < #y cu0 ∧ nz0 < #z cu0 → cu1(nx0, ny0, nz0) = (nx = nx0 ∧ ny = ny0 ∧ nz = nz0 ⊃ a;cu0(nx0, ny0, nz0)))
Used formulas: #x cu1 = #x cu0
| #x cu1 = #x cu0 ⊦ #x cu1 = #x cu0 ∧ #y cu1 = #y cu0 ∧ #z cu1 = #z cu0 ∧ (∀ nx0, ny0, nz0. nx0 < #x cu1 ∧ ny0 < #y cu1 ∧ nz0 < #z cu1 → cu1(nx0, ny0, nz0) = cu0(nx, ny, nz := a)(nx0, ny0, nz0)) ↔ #x cu0 = #x cu1 ∧ #y cu0 = #y cu1 ∧ #z cu0 = #z cu1 ∧ (∀ nx0, ny0, nz0. nx0 < #x cu0 ∧ ny0 < #y cu0 ∧ nz0 < #z cu0 → cu1(nx0, ny0, nz0) = (nx = nx0 ∧ ny = ny0 ∧ nz = nz0 ⊃ a;cu0(nx0, ny0, nz0))) |
#x cu1 = #x cu0 ⊦ #y cu1 = #y cu0 ∧ #z cu1 = #z cu0 ∧ (∀ nx0, ny0, nz0. nx0 < #x cu0 ∧ ny0 < #y cu1 ∧ nz0 < #z cu1 → cu1(nx0, ny0, nz0) = cu0(nx, ny, nz := a)(nx0, ny0, nz0)) ↔ #y cu0 = #y cu1 ∧ #z cu0 = #z cu1 ∧ (∀ nx0, ny0, nz0. nx0 < #x cu0 ∧ ny0 < #y cu0 ∧ nz0 < #z cu0 → cu1(nx0, ny0, nz0) = (nx = nx0 ∧ ny = ny0 ∧ nz = nz0 ⊃ a;cu0(nx0, ny0, nz0)))
| #x cu1 = #x cu0 ⊦ #y cu1 = #y cu0 ∧ #z cu1 = #z cu0 ∧ (∀ nx0, ny0, nz0. nx0 < #x cu0 ∧ ny0 < #y cu1 ∧ nz0 < #z cu1 → cu1(nx0, ny0, nz0) = cu0(nx, ny, nz := a)(nx0, ny0, nz0)) ↔ #y cu0 = #y cu1 ∧ #z cu0 = #z cu1 ∧ (∀ nx0, ny0, nz0. nx0 < #x cu0 ∧ ny0 < #y cu0 ∧ nz0 < #z cu0 → cu1(nx0, ny0, nz0) = (nx = nx0 ∧ ny = ny0 ∧ nz = nz0 ⊃ a;cu0(nx0, ny0, nz0))) |
#x cu1 = #x cu0, #y cu1 = #y cu0 ⊦ #y cu1 = #y cu0 ∧ #z cu1 = #z cu0 ∧ (∀ nx0, ny0, nz0. nx0 < #x cu0 ∧ ny0 < #y cu1 ∧ nz0 < #z cu1 → cu1(nx0, ny0, nz0) = cu0(nx, ny, nz := a)(nx0, ny0, nz0)) ↔ #y cu0 = #y cu1 ∧ #z cu0 = #z cu1 ∧ (∀ nx0, ny0, nz0. nx0 < #x cu0 ∧ ny0 < #y cu0 ∧ nz0 < #z cu0 → cu1(nx0, ny0, nz0) = (nx = nx0 ∧ ny = ny0 ∧ nz = nz0 ⊃ a;cu0(nx0, ny0, nz0)))
Used formulas: #y cu1 = #y cu0
| #x cu1 = #x cu0, #y cu1 = #y cu0 ⊦ #y cu1 = #y cu0 ∧ #z cu1 = #z cu0 ∧ (∀ nx0, ny0, nz0. nx0 < #x cu0 ∧ ny0 < #y cu1 ∧ nz0 < #z cu1 → cu1(nx0, ny0, nz0) = cu0(nx, ny, nz := a)(nx0, ny0, nz0)) ↔ #y cu0 = #y cu1 ∧ #z cu0 = #z cu1 ∧ (∀ nx0, ny0, nz0. nx0 < #x cu0 ∧ ny0 < #y cu0 ∧ nz0 < #z cu0 → cu1(nx0, ny0, nz0) = (nx = nx0 ∧ ny = ny0 ∧ nz = nz0 ⊃ a;cu0(nx0, ny0, nz0))) |
#x cu1 = #x cu0, #y cu1 = #y cu0 ⊦ #z cu1 = #z cu0 ∧ (∀ nx0, ny0, nz0. nx0 < #x cu0 ∧ ny0 < #y cu0 ∧ nz0 < #z cu1 → cu1(nx0, ny0, nz0) = cu0(nx, ny, nz := a)(nx0, ny0, nz0)) ↔ #z cu0 = #z cu1 ∧ (∀ nx0, ny0, nz0. nx0 < #x cu0 ∧ ny0 < #y cu0 ∧ nz0 < #z cu0 → cu1(nx0, ny0, nz0) = (nx = nx0 ∧ ny = ny0 ∧ nz = nz0 ⊃ a;cu0(nx0, ny0, nz0)))
| #x cu1 = #x cu0, #y cu1 = #y cu0 ⊦ #z cu1 = #z cu0 ∧ (∀ nx0, ny0, nz0. nx0 < #x cu0 ∧ ny0 < #y cu0 ∧ nz0 < #z cu1 → cu1(nx0, ny0, nz0) = cu0(nx, ny, nz := a)(nx0, ny0, nz0)) ↔ #z cu0 = #z cu1 ∧ (∀ nx0, ny0, nz0. nx0 < #x cu0 ∧ ny0 < #y cu0 ∧ nz0 < #z cu0 → cu1(nx0, ny0, nz0) = (nx = nx0 ∧ ny = ny0 ∧ nz = nz0 ⊃ a;cu0(nx0, ny0, nz0))) |
#x cu1 = #x cu0, #y cu1 = #y cu0, #z cu1 = #z cu0 ⊦ #z cu1 = #z cu0 ∧ (∀ nx0, ny0, nz0. nx0 < #x cu0 ∧ ny0 < #y cu0 ∧ nz0 < #z cu1 → cu1(nx0, ny0, nz0) = cu0(nx, ny, nz := a)(nx0, ny0, nz0)) ↔ #z cu0 = #z cu1 ∧ (∀ nx0, ny0, nz0. nx0 < #x cu0 ∧ ny0 < #y cu0 ∧ nz0 < #z cu0 → cu1(nx0, ny0, nz0) = (nx = nx0 ∧ ny = ny0 ∧ nz = nz0 ⊃ a;cu0(nx0, ny0, nz0)))
Used formulas: #z cu1 = #z cu0
| #x cu1 = #x cu0, #y cu1 = #y cu0, #z cu1 = #z cu0 ⊦ #z cu1 = #z cu0 ∧ (∀ nx0, ny0, nz0. nx0 < #x cu0 ∧ ny0 < #y cu0 ∧ nz0 < #z cu1 → cu1(nx0, ny0, nz0) = cu0(nx, ny, nz := a)(nx0, ny0, nz0)) ↔ #z cu0 = #z cu1 ∧ (∀ nx0, ny0, nz0. nx0 < #x cu0 ∧ ny0 < #y cu0 ∧ nz0 < #z cu0 → cu1(nx0, ny0, nz0) = (nx = nx0 ∧ ny = ny0 ∧ nz = nz0 ⊃ a;cu0(nx0, ny0, nz0))) |
#x cu1 = #x cu0, #y cu1 = #y cu0, #z cu1 = #z cu0 ⊦ (∀ nx0, ny0, nz0. nx0 < #x cu0 ∧ ny0 < #y cu0 ∧ nz0 < #z cu0 → cu1(nx0, ny0, nz0) = cu0(nx, ny, nz := a)(nx0, ny0, nz0)) ↔ (∀ nx0, ny0, nz0. nx0 < #x cu0 ∧ ny0 < #y cu0 ∧ nz0 < #z cu0 → cu1(nx0, ny0, nz0) = (nx = nx0 ∧ ny = ny0 ∧ nz = nz0 ⊃ a;cu0(nx0, ny0, nz0)))
| #x cu1 = #x cu0, #y cu1 = #y cu0, #z cu1 = #z cu0 ⊦ (∀ nx0, ny0, nz0. nx0 < #x cu0 ∧ ny0 < #y cu0 ∧ nz0 < #z cu0 → cu1(nx0, ny0, nz0) = cu0(nx, ny, nz := a)(nx0, ny0, nz0)) ↔ (∀ nx0, ny0, nz0. nx0 < #x cu0 ∧ ny0 < #y cu0 ∧ nz0 < #z cu0 → cu1(nx0, ny0, nz0) = (nx = nx0 ∧ ny = ny0 ∧ nz = nz0 ⊃ a;cu0(nx0, ny0, nz0))) |
#x cu1 = #x cu0, #y cu1 = #y cu0, #z cu1 = #z cu0, ∀ nx0, ny0, nz0. nx0 < #x cu0 ∧ ny0 < #y cu0 ∧ nz0 < #z cu0 → cu1(nx0, ny0, nz0) = cu0(nx, ny, nz := a)(nx0, ny0, nz0) ⊦ ∀ nx0, ny0, nz0. nx0 < #x cu0 ∧ ny0 < #y cu0 ∧ nz0 < #z cu0 → cu1(nx0, ny0, nz0) = (nx = nx0 ∧ ny = ny0 ∧ nz = nz0 ⊃ a;cu0(nx0, ny0, nz0))
#x cu1 = #x cu0, #y cu1 = #y cu0, #z cu1 = #z cu0, ∀ nx0, ny0, nz0. nx0 < #x cu0 ∧ ny0 < #y cu0 ∧ nz0 < #z cu0 → cu1(nx0, ny0, nz0) = (nx = nx0 ∧ ny = ny0 ∧ nz = nz0 ⊃ a;cu0(nx0, ny0, nz0)) ⊦ ∀ nx0, ny0, nz0. nx0 < #x cu0 ∧ ny0 < #y cu0 ∧ nz0 < #z cu0 → cu1(nx0, ny0, nz0) = cu0(nx, ny, nz := a)(nx0, ny0, nz0)
| #x cu1 = #x cu0, #y cu1 = #y cu0, #z cu1 = #z cu0, ∀ nx0, ny0, nz0. nx0 < #x cu0 ∧ ny0 < #y cu0 ∧ nz0 < #z cu0 → cu1(nx0, ny0, nz0) = cu0(nx, ny, nz := a)(nx0, ny0, nz0) ⊦ ∀ nx0, ny0, nz0. nx0 < #x cu0 ∧ ny0 < #y cu0 ∧ nz0 < #z cu0 → cu1(nx0, ny0, nz0) = (nx = nx0 ∧ ny = ny0 ∧ nz = nz0 ⊃ a;cu0(nx0, ny0, nz0)) |
#x cu1 = #x cu0, #y cu1 = #y cu0, #z cu1 = #z cu0, cu1(nx0, ny0, nz0) ≠ (nx = nx0 ∧ ny = ny0 ∧ nz = nz0 ⊃ a;cu0(nx0, ny0, nz0)), nz0 < #z cu0, ny0 < #y cu0, nx0 < #x cu0, ∀ nx0, ny0, nz0. nx0 < #x cu0 ∧ ny0 < #y cu0 ∧ nz0 < #z cu0 → cu1(nx0, ny0, nz0) = cu0(nx, ny, nz := a)(nx0, ny0, nz0) ⊦
Used simplifier rules: ⊦ m < n → n ≠ 0; (s) lf-01: ⊦ m < n ∧ n = n0 → m < n0; (forward) from specification nat-basic f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic
| #x cu1 = #x cu0, #y cu1 = #y cu0, #z cu1 = #z cu0, cu1(nx0, ny0, nz0) ≠ (nx = nx0 ∧ ny = ny0 ∧ nz = nz0 ⊃ a;cu0(nx0, ny0, nz0)), nz0 < #z cu0, ny0 < #y cu0, nx0 < #x cu0, ∀ nx0, ny0, nz0. nx0 < #x cu0 ∧ ny0 < #y cu0 ∧ nz0 < #z cu0 → cu1(nx0, ny0, nz0) = cu0(nx, ny, nz := a)(nx0, ny0, nz0) ⊦ |
#x cu1 = #x cu0, #y cu1 = #y cu0, #z cu1 = #z cu0, nx = nx0, ny = ny0, nz = nz0, cu1(nx0, ny0, nz0) ≠ a, nx0 < #x cu0, ny0 < #y cu0, nz0 < #z cu0, ∀ nx0, ny0, nz0. nx0 < #x cu0 ∧ ny0 < #y cu0 ∧ nz0 < #z cu0 → cu1(nx0, ny0, nz0) = cu0(nx, ny, nz := a)(nx0, ny0, nz0) ⊦
#x cu1 = #x cu0, #y cu1 = #y cu0, #z cu1 = #z cu0, cu1(nx0, ny0, nz0) ≠ cu0(nx0, ny0, nz0), nx0 < #x cu0, ny0 < #y cu0, nz0 < #z cu0, ∀ nx0, ny0, nz0. nx0 < #x cu0 ∧ ny0 < #y cu0 ∧ nz0 < #z cu0 → cu1(nx0, ny0, nz0) = cu0(nx, ny, nz := a)(nx0, ny0, nz0), nx ≠ nx0 ∨ ny ≠ ny0 ∨ nz ≠ nz0 ⊦
| #x cu1 = #x cu0, #y cu1 = #y cu0, #z cu1 = #z cu0, nx = nx0, ny = ny0, nz = nz0, cu1(nx0, ny0, nz0) ≠ a, nx0 < #x cu0, ny0 < #y cu0, nz0 < #z cu0, ∀ nx0, ny0, nz0. nx0 < #x cu0 ∧ ny0 < #y cu0 ∧ nz0 < #z cu0 → cu1(nx0, ny0, nz0) = cu0(nx, ny, nz := a)(nx0, ny0, nz0) ⊦ |
#x cu1 = #x cu0, #y cu1 = #y cu0, #z cu1 = #z cu0, cu1(nx0, ny0, nz0) ≠ a, nz0 < #z cu0, ny0 < #y cu0, nx0 < #x cu0, ∀ nx1, ny1, nz1. nx1 < #x cu0 ∧ ny1 < #y cu0 ∧ nz1 < #z cu0 → cu1(nx1, ny1, nz1) = cu0(nx0, ny0, nz0 := a)(nx1, ny1, nz1) ⊦
| #x cu1 = #x cu0, #y cu1 = #y cu0, #z cu1 = #z cu0, cu1(nx0, ny0, nz0) ≠ a, nz0 < #z cu0, ny0 < #y cu0, nx0 < #x cu0, ∀ nx1, ny1, nz1. nx1 < #x cu0 ∧ ny1 < #y cu0 ∧ nz1 < #z cu0 → cu1(nx1, ny1, nz1) = cu0(nx0, ny0, nz0 := a)(nx1, ny1, nz1) ⊦ |
Used simplifier rules: put-same: nx < #x cu, ny < #y cu, nz < #z cu ⊦ cu(nx, ny, nz := a)(nx, ny, nz) = a; Used terms: nx0, ny0, nz0
| #x cu1 = #x cu0, #y cu1 = #y cu0, #z cu1 = #z cu0, cu1(nx0, ny0, nz0) ≠ cu0(nx0, ny0, nz0), nx0 < #x cu0, ny0 < #y cu0, nz0 < #z cu0, ∀ nx0, ny0, nz0. nx0 < #x cu0 ∧ ny0 < #y cu0 ∧ nz0 < #z cu0 → cu1(nx0, ny0, nz0) = cu0(nx, ny, nz := a)(nx0, ny0, nz0), nx ≠ nx0 ∨ ny ≠ ny0 ∨ nz ≠ nz0 ⊦ |
Used simplifier rules: put-otherwidth: ⊦ nx ≠ nx0 → cu(nx, ny, nz := a)(nx0, ny0, nz0) = cu(nx0, ny0, nz0); put-otherdepth: ⊦ ny ≠ ny0 → cu(nx, ny, nz := a)(nx0, ny0, nz0) = cu(nx0, ny0, nz0); put-otherheight: ⊦ nz ≠ nz0 → cu(nx, ny, nz := a)(nx0, ny0, nz0) = cu(nx0, ny0, nz0); Used terms: nx0, ny0, nz0
| #x cu1 = #x cu0, #y cu1 = #y cu0, #z cu1 = #z cu0, ∀ nx0, ny0, nz0. nx0 < #x cu0 ∧ ny0 < #y cu0 ∧ nz0 < #z cu0 → cu1(nx0, ny0, nz0) = (nx = nx0 ∧ ny = ny0 ∧ nz = nz0 ⊃ a;cu0(nx0, ny0, nz0)) ⊦ ∀ nx0, ny0, nz0. nx0 < #x cu0 ∧ ny0 < #y cu0 ∧ nz0 < #z cu0 → cu1(nx0, ny0, nz0) = cu0(nx, ny, nz := a)(nx0, ny0, nz0) |
#x cu1 = #x cu0, #y cu1 = #y cu0, #z cu1 = #z cu0, cu1(nx0, ny0, nz0) ≠ cu0(nx, ny, nz := a)(nx0, ny0, nz0), nz0 < #z cu0, ny0 < #y cu0, nx0 < #x cu0, ∀ nx0, ny0, nz0. nx0 < #x cu0 ∧ ny0 < #y cu0 ∧ nz0 < #z cu0 → cu1(nx0, ny0, nz0) = (nx = nx0 ∧ ny = ny0 ∧ nz = nz0 ⊃ a;cu0(nx0, ny0, nz0)) ⊦
Used simplifier rules: ⊦ m < n → n ≠ 0; (s) lf-01: ⊦ m < n ∧ n = n0 → m < n0; (forward) from specification nat-basic f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic
| #x cu1 = #x cu0, #y cu1 = #y cu0, #z cu1 = #z cu0, cu1(nx0, ny0, nz0) ≠ cu0(nx, ny, nz := a)(nx0, ny0, nz0), nz0 < #z cu0, ny0 < #y cu0, nx0 < #x cu0, ∀ nx0, ny0, nz0. nx0 < #x cu0 ∧ ny0 < #y cu0 ∧ nz0 < #z cu0 → cu1(nx0, ny0, nz0) = (nx = nx0 ∧ ny = ny0 ∧ nz = nz0 ⊃ a;cu0(nx0, ny0, nz0)) ⊦ |
#x cu1 = #x cu0, #y cu1 = #y cu0, #z cu1 = #z cu0, ny = ny0, cu1(nx0, ny0, nz0) ≠ cu0(nx, ny, nz := a)(nx0, ny0, nz0), nx0 < #x cu0, ny0 < #y cu0, nz0 < #z cu0, ∀ nx0, ny0, nz0. nx0 < #x cu0 ∧ ny0 < #y cu0 ∧ nz0 < #z cu0 → cu1(nx0, ny0, nz0) = (nx = nx0 ∧ ny = ny0 ∧ nz = nz0 ⊃ a;cu0(nx0, ny0, nz0)) ⊦
#x cu1 = #x cu0, #y cu1 = #y cu0, #z cu1 = #z cu0, cu1(nx0, ny0, nz0) ≠ cu0(nx, ny, nz := a)(nx0, ny0, nz0), ny ≠ ny0, nx0 < #x cu0, ny0 < #y cu0, nz0 < #z cu0, ∀ nx0, ny0, nz0. nx0 < #x cu0 ∧ ny0 < #y cu0 ∧ nz0 < #z cu0 → cu1(nx0, ny0, nz0) = (nx = nx0 ∧ ny = ny0 ∧ nz = nz0 ⊃ a;cu0(nx0, ny0, nz0)) ⊦
Used formulas: ny = ny0
| #x cu1 = #x cu0, #y cu1 = #y cu0, #z cu1 = #z cu0, ny = ny0, cu1(nx0, ny0, nz0) ≠ cu0(nx, ny, nz := a)(nx0, ny0, nz0), nx0 < #x cu0, ny0 < #y cu0, nz0 < #z cu0, ∀ nx0, ny0, nz0. nx0 < #x cu0 ∧ ny0 < #y cu0 ∧ nz0 < #z cu0 → cu1(nx0, ny0, nz0) = (nx = nx0 ∧ ny = ny0 ∧ nz = nz0 ⊃ a;cu0(nx0, ny0, nz0)) ⊦ |
#x cu1 = #x cu0, #y cu1 = #y cu0, #z cu1 = #z cu0, cu1(nx0, ny0, nz0) ≠ cu0(nx, ny0, nz := a)(nx0, ny0, nz0), nz0 < #z cu0, ny0 < #y cu0, nx0 < #x cu0, ∀ nx0, ny1, nz0. nx0 < #x cu0 ∧ ny1 < #y cu0 ∧ nz0 < #z cu0 → cu1(nx0, ny1, nz0) = (nx = nx0 ∧ ny0 = ny1 ∧ nz = nz0 ⊃ a;cu0(nx0, ny1, nz0)) ⊦
| #x cu1 = #x cu0, #y cu1 = #y cu0, #z cu1 = #z cu0, cu1(nx0, ny0, nz0) ≠ cu0(nx, ny0, nz := a)(nx0, ny0, nz0), nz0 < #z cu0, ny0 < #y cu0, nx0 < #x cu0, ∀ nx0, ny1, nz0. nx0 < #x cu0 ∧ ny1 < #y cu0 ∧ nz0 < #z cu0 → cu1(nx0, ny1, nz0) = (nx = nx0 ∧ ny0 = ny1 ∧ nz = nz0 ⊃ a;cu0(nx0, ny1, nz0)) ⊦ |
#x cu1 = #x cu0, #y cu1 = #y cu0, #z cu1 = #z cu0, nz = nz0, cu1(nx0, ny0, nz0) ≠ cu0(nx, ny0, nz := a)(nx0, ny0, nz0), nx0 < #x cu0, ny0 < #y cu0, nz0 < #z cu0, ∀ nx0, ny1, nz0. nx0 < #x cu0 ∧ ny1 < #y cu0 ∧ nz0 < #z cu0 → cu1(nx0, ny1, nz0) = (nx = nx0 ∧ ny0 = ny1 ∧ nz = nz0 ⊃ a;cu0(nx0, ny1, nz0)) ⊦
#x cu1 = #x cu0, #y cu1 = #y cu0, #z cu1 = #z cu0, cu1(nx0, ny0, nz0) ≠ cu0(nx, ny0, nz := a)(nx0, ny0, nz0), nz ≠ nz0, nx0 < #x cu0, ny0 < #y cu0, nz0 < #z cu0, ∀ nx0, ny1, nz0. nx0 < #x cu0 ∧ ny1 < #y cu0 ∧ nz0 < #z cu0 → cu1(nx0, ny1, nz0) = (nx = nx0 ∧ ny0 = ny1 ∧ nz = nz0 ⊃ a;cu0(nx0, ny1, nz0)) ⊦
Used formulas: nz = nz0
| #x cu1 = #x cu0, #y cu1 = #y cu0, #z cu1 = #z cu0, nz = nz0, cu1(nx0, ny0, nz0) ≠ cu0(nx, ny0, nz := a)(nx0, ny0, nz0), nx0 < #x cu0, ny0 < #y cu0, nz0 < #z cu0, ∀ nx0, ny1, nz0. nx0 < #x cu0 ∧ ny1 < #y cu0 ∧ nz0 < #z cu0 → cu1(nx0, ny1, nz0) = (nx = nx0 ∧ ny0 = ny1 ∧ nz = nz0 ⊃ a;cu0(nx0, ny1, nz0)) ⊦ |
#x cu1 = #x cu0, #y cu1 = #y cu0, #z cu1 = #z cu0, cu1(nx0, ny0, nz0) ≠ cu0(nx, ny0, nz0 := a)(nx0, ny0, nz0), nz0 < #z cu0, ny0 < #y cu0, nx0 < #x cu0, ∀ nx0, ny1, nz1. nx0 < #x cu0 ∧ ny1 < #y cu0 ∧ nz1 < #z cu0 → cu1(nx0, ny1, nz1) = (nx = nx0 ∧ ny0 = ny1 ∧ nz0 = nz1 ⊃ a;cu0(nx0, ny1, nz1)) ⊦
| #x cu1 = #x cu0, #y cu1 = #y cu0, #z cu1 = #z cu0, cu1(nx0, ny0, nz0) ≠ cu0(nx, ny0, nz0 := a)(nx0, ny0, nz0), nz0 < #z cu0, ny0 < #y cu0, nx0 < #x cu0, ∀ nx0, ny1, nz1. nx0 < #x cu0 ∧ ny1 < #y cu0 ∧ nz1 < #z cu0 → cu1(nx0, ny1, nz1) = (nx = nx0 ∧ ny0 = ny1 ∧ nz0 = nz1 ⊃ a;cu0(nx0, ny1, nz1)) ⊦ |
#x cu1 = #x cu0, #y cu1 = #y cu0, #z cu1 = #z cu0, nx = nx0, cu1(nx0, ny0, nz0) ≠ cu0(nx, ny0, nz0 := a)(nx0, ny0, nz0), nx0 < #x cu0, ny0 < #y cu0, nz0 < #z cu0, ∀ nx0, ny1, nz1. nx0 < #x cu0 ∧ ny1 < #y cu0 ∧ nz1 < #z cu0 → cu1(nx0, ny1, nz1) = (nx = nx0 ∧ ny0 = ny1 ∧ nz0 = nz1 ⊃ a;cu0(nx0, ny1, nz1)) ⊦
#x cu1 = #x cu0, #y cu1 = #y cu0, #z cu1 = #z cu0, cu1(nx0, ny0, nz0) ≠ cu0(nx, ny0, nz0 := a)(nx0, ny0, nz0), nx ≠ nx0, nx0 < #x cu0, ny0 < #y cu0, nz0 < #z cu0, ∀ nx0, ny1, nz1. nx0 < #x cu0 ∧ ny1 < #y cu0 ∧ nz1 < #z cu0 → cu1(nx0, ny1, nz1) = (nx = nx0 ∧ ny0 = ny1 ∧ nz0 = nz1 ⊃ a;cu0(nx0, ny1, nz1)) ⊦
Used formulas: nx = nx0
| #x cu1 = #x cu0, #y cu1 = #y cu0, #z cu1 = #z cu0, nx = nx0, cu1(nx0, ny0, nz0) ≠ cu0(nx, ny0, nz0 := a)(nx0, ny0, nz0), nx0 < #x cu0, ny0 < #y cu0, nz0 < #z cu0, ∀ nx0, ny1, nz1. nx0 < #x cu0 ∧ ny1 < #y cu0 ∧ nz1 < #z cu0 → cu1(nx0, ny1, nz1) = (nx = nx0 ∧ ny0 = ny1 ∧ nz0 = nz1 ⊃ a;cu0(nx0, ny1, nz1)) ⊦ |
#x cu1 = #x cu0, #y cu1 = #y cu0, #z cu1 = #z cu0, cu1(nx0, ny0, nz0) ≠ a, nz0 < #z cu0, ny0 < #y cu0, nx0 < #x cu0, ∀ nx1, ny1, nz1. nx1 < #x cu0 ∧ ny1 < #y cu0 ∧ nz1 < #z cu0 → cu1(nx1, ny1, nz1) = (nx0 = nx1 ∧ ny0 = ny1 ∧ nz0 = nz1 ⊃ a;cu0(nx1, ny1, nz1)) ⊦
Used simplifier rules: put-same: nx < #x cu, ny < #y cu, nz < #z cu ⊦ cu(nx, ny, nz := a)(nx, ny, nz) = a;
| #x cu1 = #x cu0, #y cu1 = #y cu0, #z cu1 = #z cu0, cu1(nx0, ny0, nz0) ≠ a, nz0 < #z cu0, ny0 < #y cu0, nx0 < #x cu0, ∀ nx1, ny1, nz1. nx1 < #x cu0 ∧ ny1 < #y cu0 ∧ nz1 < #z cu0 → cu1(nx1, ny1, nz1) = (nx0 = nx1 ∧ ny0 = ny1 ∧ nz0 = nz1 ⊃ a;cu0(nx1, ny1, nz1)) ⊦ |
Used terms: nx0, ny0, nz0
| #x cu1 = #x cu0, #y cu1 = #y cu0, #z cu1 = #z cu0, cu1(nx0, ny0, nz0) ≠ cu0(nx, ny0, nz0 := a)(nx0, ny0, nz0), nx ≠ nx0, nx0 < #x cu0, ny0 < #y cu0, nz0 < #z cu0, ∀ nx0, ny1, nz1. nx0 < #x cu0 ∧ ny1 < #y cu0 ∧ nz1 < #z cu0 → cu1(nx0, ny1, nz1) = (nx = nx0 ∧ ny0 = ny1 ∧ nz0 = nz1 ⊃ a;cu0(nx0, ny1, nz1)) ⊦ |
#x cu1 = #x cu0, #y cu1 = #y cu0, #z cu1 = #z cu0, cu1(nx0, ny0, nz0) ≠ cu0(nx0, ny0, nz0), nx ≠ nx0, nz0 < #z cu0, ny0 < #y cu0, nx0 < #x cu0, ∀ nx0, ny1, nz1. nx0 < #x cu0 ∧ ny1 < #y cu0 ∧ nz1 < #z cu0 → cu1(nx0, ny1, nz1) = (nx = nx0 ∧ ny0 = ny1 ∧ nz0 = nz1 ⊃ a;cu0(nx0, ny1, nz1)) ⊦
Used simplifier rules: put-otherwidth: ⊦ nx ≠ nx0 → cu(nx, ny, nz := a)(nx0, ny0, nz0) = cu(nx0, ny0, nz0);
| #x cu1 = #x cu0, #y cu1 = #y cu0, #z cu1 = #z cu0, cu1(nx0, ny0, nz0) ≠ cu0(nx0, ny0, nz0), nx ≠ nx0, nz0 < #z cu0, ny0 < #y cu0, nx0 < #x cu0, ∀ nx0, ny1, nz1. nx0 < #x cu0 ∧ ny1 < #y cu0 ∧ nz1 < #z cu0 → cu1(nx0, ny1, nz1) = (nx = nx0 ∧ ny0 = ny1 ∧ nz0 = nz1 ⊃ a;cu0(nx0, ny1, nz1)) ⊦ |
Used terms: nx0, ny0, nz0
| #x cu1 = #x cu0, #y cu1 = #y cu0, #z cu1 = #z cu0, cu1(nx0, ny0, nz0) ≠ cu0(nx, ny0, nz := a)(nx0, ny0, nz0), nz ≠ nz0, nx0 < #x cu0, ny0 < #y cu0, nz0 < #z cu0, ∀ nx0, ny1, nz0. nx0 < #x cu0 ∧ ny1 < #y cu0 ∧ nz0 < #z cu0 → cu1(nx0, ny1, nz0) = (nx = nx0 ∧ ny0 = ny1 ∧ nz = nz0 ⊃ a;cu0(nx0, ny1, nz0)) ⊦ |
#x cu1 = #x cu0, #y cu1 = #y cu0, #z cu1 = #z cu0, cu1(nx0, ny0, nz0) ≠ cu0(nx0, ny0, nz0), nz ≠ nz0, nz0 < #z cu0, ny0 < #y cu0, nx0 < #x cu0, ∀ nx0, ny1, nz0. nx0 < #x cu0 ∧ ny1 < #y cu0 ∧ nz0 < #z cu0 → cu1(nx0, ny1, nz0) = (nx = nx0 ∧ ny0 = ny1 ∧ nz = nz0 ⊃ a;cu0(nx0, ny1, nz0)) ⊦
Used simplifier rules: put-otherheight: ⊦ nz ≠ nz0 → cu(nx, ny, nz := a)(nx0, ny0, nz0) = cu(nx0, ny0, nz0);
| #x cu1 = #x cu0, #y cu1 = #y cu0, #z cu1 = #z cu0, cu1(nx0, ny0, nz0) ≠ cu0(nx0, ny0, nz0), nz ≠ nz0, nz0 < #z cu0, ny0 < #y cu0, nx0 < #x cu0, ∀ nx0, ny1, nz0. nx0 < #x cu0 ∧ ny1 < #y cu0 ∧ nz0 < #z cu0 → cu1(nx0, ny1, nz0) = (nx = nx0 ∧ ny0 = ny1 ∧ nz = nz0 ⊃ a;cu0(nx0, ny1, nz0)) ⊦ |
Used terms: nx0, ny0, nz0
| #x cu1 = #x cu0, #y cu1 = #y cu0, #z cu1 = #z cu0, cu1(nx0, ny0, nz0) ≠ cu0(nx, ny, nz := a)(nx0, ny0, nz0), ny ≠ ny0, nx0 < #x cu0, ny0 < #y cu0, nz0 < #z cu0, ∀ nx0, ny0, nz0. nx0 < #x cu0 ∧ ny0 < #y cu0 ∧ nz0 < #z cu0 → cu1(nx0, ny0, nz0) = (nx = nx0 ∧ ny = ny0 ∧ nz = nz0 ⊃ a;cu0(nx0, ny0, nz0)) ⊦ |
#x cu1 = #x cu0, #y cu1 = #y cu0, #z cu1 = #z cu0, cu1(nx0, ny0, nz0) ≠ cu0(nx0, ny0, nz0), ny ≠ ny0, nz0 < #z cu0, ny0 < #y cu0, nx0 < #x cu0, ∀ nx0, ny0, nz0. nx0 < #x cu0 ∧ ny0 < #y cu0 ∧ nz0 < #z cu0 → cu1(nx0, ny0, nz0) = (nx = nx0 ∧ ny = ny0 ∧ nz = nz0 ⊃ a;cu0(nx0, ny0, nz0)) ⊦
Used simplifier rules: put-otherdepth: ⊦ ny ≠ ny0 → cu(nx, ny, nz := a)(nx0, ny0, nz0) = cu(nx0, ny0, nz0);
| #x cu1 = #x cu0, #y cu1 = #y cu0, #z cu1 = #z cu0, cu1(nx0, ny0, nz0) ≠ cu0(nx0, ny0, nz0), ny ≠ ny0, nz0 < #z cu0, ny0 < #y cu0, nx0 < #x cu0, ∀ nx0, ny0, nz0. nx0 < #x cu0 ∧ ny0 < #y cu0 ∧ nz0 < #z cu0 → cu1(nx0, ny0, nz0) = (nx = nx0 ∧ ny = ny0 ∧ nz = nz0 ⊃ a;cu0(nx0, ny0, nz0)) ⊦ |
Used terms: nx0, ny0, nz0
The following image shows the proof tree of sequent calculus. The proved goal is at the bottom. You can click on the nodes to view additional rules. See here for details on colors in a proof tree.