| ⊦ (cu[nx0, ny0, nz0 := a])[nx1, ny1, nz1 := b] = (cu[nx1, ny1, nz1 := b])[nx0, ny0, nz0 := a] ↔ nx0 ≠ nx1 ∨ ny0 ≠ ny1 ∨ nz0 ≠ nz1 ∨ ¬ nx0 < #x cu ∨ ¬ ny0 < #y cu ∨ ¬ nz0 < #z cu ∨ a = b |
¬ ( (cu[nx0, ny0, nz0 := a])[nx1, ny1, nz1 := b] = (cu[nx1, ny1, nz1 := b])[nx0, ny0, nz0 := a] ↔ nx0 ≠ nx1 ∨ ny0 ≠ ny1 ∨ nz0 ≠ nz1 ∨ ¬ nx0 < #x cu ∨ ¬ ny0 < #y cu ∨ ¬ nz0 < #z cu ∨ a = b) ⊦
| ¬ ( (cu[nx0, ny0, nz0 := a])[nx1, ny1, nz1 := b] = (cu[nx1, ny1, nz1 := b])[nx0, ny0, nz0 := a] ↔ nx0 ≠ nx1 ∨ ny0 ≠ ny1 ∨ nz0 ≠ nz1 ∨ ¬ nx0 < #x cu ∨ ¬ ny0 < #y cu ∨ ¬ nz0 < #z cu ∨ a = b) ⊦ |
⊦ (∀ nx, ny, nz. nx < #x cu ∧ ny < #y cu ∧ nz < #z cu → ((cu[nx0, ny0, nz0 := a])[nx1, ny1, nz1 := b])[nx, ny, nz] = ((cu[nx1, ny1, nz1 := b])[nx0, ny0, nz0 := a])[nx, ny, nz]) ↔ nx0 ≠ nx1 ∨ ny0 ≠ ny1 ∨ nz0 ≠ nz1 ∨ ¬ nx1 < #x cu ∨ ¬ ny1 < #y cu ∨ ¬ nz1 < #z cu ∨ a = b
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;
| ⊦ (∀ nx, ny, nz. nx < #x cu ∧ ny < #y cu ∧ nz < #z cu → ((cu[nx0, ny0, nz0 := a])[nx1, ny1, nz1 := b])[nx, ny, nz] = ((cu[nx1, ny1, nz1 := b])[nx0, ny0, nz0 := a])[nx, ny, nz]) ↔ nx0 ≠ nx1 ∨ ny0 ≠ ny1 ∨ nz0 ≠ nz1 ∨ ¬ nx1 < #x cu ∨ ¬ ny1 < #y cu ∨ ¬ nz1 < #z cu ∨ a = b |
nx0 = nx1, ny0 = ny1, nz0 = nz1, a ≠ b, nx1 < #x cu, ny1 < #y cu, nz1 < #z cu, ∀ nx, ny, nz. nx < #x cu ∧ ny < #y cu ∧ nz < #z cu → ((cu[nx0, ny0, nz0 := a])[nx1, ny1, nz1 := b])[nx, ny, nz] = ((cu[nx1, ny1, nz1 := b])[nx0, ny0, nz0 := a])[nx, ny, nz] ⊦
nx0 ≠ nx1 ∨ ny0 ≠ ny1 ∨ nz0 ≠ nz1 ∨ ¬ nx1 < #x cu ∨ ¬ ny1 < #y cu ∨ ¬ nz1 < #z cu ∨ a = b ⊦ ∀ nx, ny, nz. nx < #x cu ∧ ny < #y cu ∧ nz < #z cu → ((cu[nx0, ny0, nz0 := a])[nx1, ny1, nz1 := b])[nx, ny, nz] = ((cu[nx1, ny1, nz1 := b])[nx0, ny0, nz0 := a])[nx, ny, nz]
| nx0 = nx1, ny0 = ny1, nz0 = nz1, a ≠ b, nx1 < #x cu, ny1 < #y cu, nz1 < #z cu, ∀ nx, ny, nz. nx < #x cu ∧ ny < #y cu ∧ nz < #z cu → ((cu[nx0, ny0, nz0 := a])[nx1, ny1, nz1 := b])[nx, ny, nz] = ((cu[nx1, ny1, nz1 := b])[nx0, ny0, nz0 := a])[nx, ny, nz] ⊦ |
a ≠ b, nx1 < #x cu, ny1 < #y cu, nz1 < #z cu, ∀ nx, ny, nz. nx < #x cu ∧ ny < #y cu ∧ nz < #z cu → (cu[nx1, ny1, nz1 := b])[nx, ny, nz] = (cu[nx1, ny1, nz1 := a])[nx, ny, nz] ⊦
Used simplifier rules: cputput: ⊦ (cu[nx, ny, nz := a])[nx, ny, nz := b] = cu[nx, ny, nz := b]; ⊦ m < n → n ≠ 0; (s) f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic
| a ≠ b, nx1 < #x cu, ny1 < #y cu, nz1 < #z cu, ∀ nx, ny, nz. nx < #x cu ∧ ny < #y cu ∧ nz < #z cu → (cu[nx1, ny1, nz1 := b])[nx, ny, nz] = (cu[nx1, ny1, nz1 := a])[nx, ny, nz] ⊦ |
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: nx1, ny1, nz1
| nx0 ≠ nx1 ∨ ny0 ≠ ny1 ∨ nz0 ≠ nz1 ∨ ¬ nx1 < #x cu ∨ ¬ ny1 < #y cu ∨ ¬ nz1 < #z cu ∨ a = b ⊦ ∀ nx, ny, nz. nx < #x cu ∧ ny < #y cu ∧ nz < #z cu → ((cu[nx0, ny0, nz0 := a])[nx1, ny1, nz1 := b])[nx, ny, nz] = ((cu[nx1, ny1, nz1 := b])[nx0, ny0, nz0 := a])[nx, ny, nz] |
((cu[nx0, ny0, nz0 := a])[nx1, ny1, nz1 := b])[nx, ny, nz] ≠ ((cu[nx1, ny1, nz1 := b])[nx0, ny0, nz0 := a])[nx, ny, nz], nz < #z cu, ny < #y cu, nx < #x cu, nx0 ≠ nx1 ∨ ny0 ≠ ny1 ∨ nz0 ≠ nz1 ∨ ¬ nx1 < #x cu ∨ ¬ ny1 < #y cu ∨ ¬ nz1 < #z cu ⊦
Used simplifier rules: ⊦ m < n → n ≠ 0; (s) f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic
| ((cu[nx0, ny0, nz0 := a])[nx1, ny1, nz1 := b])[nx, ny, nz] ≠ ((cu[nx1, ny1, nz1 := b])[nx0, ny0, nz0 := a])[nx, ny, nz], nz < #z cu, ny < #y cu, nx < #x cu, nx0 ≠ nx1 ∨ ny0 ≠ ny1 ∨ nz0 ≠ nz1 ∨ ¬ nx1 < #x cu ∨ ¬ ny1 < #y cu ∨ ¬ nz1 < #z cu ⊦ |
ny1 = ny, ((cu[nx0, ny0, nz0 := a])[nx1, ny1, nz1 := b])[nx, ny, nz] ≠ ((cu[nx1, ny1, nz1 := b])[nx0, ny0, nz0 := a])[nx, ny, nz], nx < #x cu, ny < #y cu, nz < #z cu, nx0 ≠ nx1 ∨ ny0 ≠ ny1 ∨ nz0 ≠ nz1 ∨ ¬ nx1 < #x cu ∨ ¬ ny1 < #y cu ∨ ¬ nz1 < #z cu ⊦
((cu[nx0, ny0, nz0 := a])[nx1, ny1, nz1 := b])[nx, ny, nz] ≠ ((cu[nx1, ny1, nz1 := b])[nx0, ny0, nz0 := a])[nx, ny, nz], ny1 ≠ ny, nx < #x cu, ny < #y cu, nz < #z cu, nx0 ≠ nx1 ∨ ny0 ≠ ny1 ∨ nz0 ≠ nz1 ∨ ¬ nx1 < #x cu ∨ ¬ ny1 < #y cu ∨ ¬ nz1 < #z cu ⊦
Used formulas: ny1 = ny
| ny1 = ny, ((cu[nx0, ny0, nz0 := a])[nx1, ny1, nz1 := b])[nx, ny, nz] ≠ ((cu[nx1, ny1, nz1 := b])[nx0, ny0, nz0 := a])[nx, ny, nz], nx < #x cu, ny < #y cu, nz < #z cu, nx0 ≠ nx1 ∨ ny0 ≠ ny1 ∨ nz0 ≠ nz1 ∨ ¬ nx1 < #x cu ∨ ¬ ny1 < #y cu ∨ ¬ nz1 < #z cu ⊦ |
((cu[nx0, ny0, nz0 := a])[nx1, ny, nz1 := b])[nx, ny, nz] ≠ ((cu[nx1, ny, nz1 := b])[nx0, ny0, nz0 := a])[nx, ny, nz], nz < #z cu, ny < #y cu, nx < #x cu, nx0 ≠ nx1 ∨ ny0 ≠ ny ∨ nz0 ≠ nz1 ∨ ¬ nx1 < #x cu ∨ ¬ nz1 < #z cu ⊦
| ((cu[nx0, ny0, nz0 := a])[nx1, ny, nz1 := b])[nx, ny, nz] ≠ ((cu[nx1, ny, nz1 := b])[nx0, ny0, nz0 := a])[nx, ny, nz], nz < #z cu, ny < #y cu, nx < #x cu, nx0 ≠ nx1 ∨ ny0 ≠ ny ∨ nz0 ≠ nz1 ∨ ¬ nx1 < #x cu ∨ ¬ nz1 < #z cu ⊦ |
nz1 = nz, ((cu[nx0, ny0, nz0 := a])[nx1, ny, nz1 := b])[nx, ny, nz] ≠ ((cu[nx1, ny, nz1 := b])[nx0, ny0, nz0 := a])[nx, ny, nz], nx < #x cu, ny < #y cu, nz < #z cu, nx0 ≠ nx1 ∨ ny0 ≠ ny ∨ nz0 ≠ nz1 ∨ ¬ nx1 < #x cu ∨ ¬ nz1 < #z cu ⊦
((cu[nx0, ny0, nz0 := a])[nx1, ny, nz1 := b])[nx, ny, nz] ≠ ((cu[nx1, ny, nz1 := b])[nx0, ny0, nz0 := a])[nx, ny, nz], nz1 ≠ nz, nx < #x cu, ny < #y cu, nz < #z cu, nx0 ≠ nx1 ∨ ny0 ≠ ny ∨ nz0 ≠ nz1 ∨ ¬ nx1 < #x cu ∨ ¬ nz1 < #z cu ⊦
Used formulas: nz1 = nz
| nz1 = nz, ((cu[nx0, ny0, nz0 := a])[nx1, ny, nz1 := b])[nx, ny, nz] ≠ ((cu[nx1, ny, nz1 := b])[nx0, ny0, nz0 := a])[nx, ny, nz], nx < #x cu, ny < #y cu, nz < #z cu, nx0 ≠ nx1 ∨ ny0 ≠ ny ∨ nz0 ≠ nz1 ∨ ¬ nx1 < #x cu ∨ ¬ nz1 < #z cu ⊦ |
((cu[nx0, ny0, nz0 := a])[nx1, ny, nz := b])[nx, ny, nz] ≠ ((cu[nx1, ny, nz := b])[nx0, ny0, nz0 := a])[nx, ny, nz], nz < #z cu, ny < #y cu, nx < #x cu, nx0 ≠ nx1 ∨ ny0 ≠ ny ∨ nz0 ≠ nz ∨ ¬ nx1 < #x cu ⊦
| ((cu[nx0, ny0, nz0 := a])[nx1, ny, nz := b])[nx, ny, nz] ≠ ((cu[nx1, ny, nz := b])[nx0, ny0, nz0 := a])[nx, ny, nz], nz < #z cu, ny < #y cu, nx < #x cu, nx0 ≠ nx1 ∨ ny0 ≠ ny ∨ nz0 ≠ nz ∨ ¬ nx1 < #x cu ⊦ |
((cu[nx0, ny0, nz0 := a])[nx1, ny, nz := b])[nx, ny, nz] ≠ ((cu[nx1, ny, nz := b])[nx0, ny0, nz0 := a])[nx, ny, nz], nx1 ≠ nx, nx < #x cu, ny < #y cu, nz < #z cu, nx0 ≠ nx1 ∨ ny0 ≠ ny ∨ nz0 ≠ nz ∨ ¬ nx1 < #x cu ⊦
Used simplifier rules: 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; 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]; put-same: nx < #x cu, ny < #y cu, nz < #z cu ⊦ (cu[nx, ny, nz := a])[nx, ny, nz] = a; Used formulas: nx1 = nx
| ((cu[nx0, ny0, nz0 := a])[nx1, ny, nz := b])[nx, ny, nz] ≠ ((cu[nx1, ny, nz := b])[nx0, ny0, nz0 := a])[nx, ny, nz], nx1 ≠ nx, nx < #x cu, ny < #y cu, nz < #z cu, nx0 ≠ nx1 ∨ ny0 ≠ ny ∨ nz0 ≠ nz ∨ ¬ nx1 < #x cu ⊦ |
(cu[nx0, ny0, nz0 := a])[nx, ny, nz] ≠ ((cu[nx1, ny, nz := b])[nx0, ny0, nz0 := a])[nx, ny, nz], nx0 ≠ nx1, nx1 ≠ nx, nx < #x cu, ny < #y cu, nz < #z cu ⊦
Used simplifier rules: put-otherwidth: ⊦ nx ≠ nx0 → (cu[nx, ny, nz := a])[nx0, ny0, nz0] = cu[nx0, ny0, nz0];
| (cu[nx0, ny0, nz0 := a])[nx, ny, nz] ≠ ((cu[nx1, ny, nz := b])[nx0, ny0, nz0 := a])[nx, ny, nz], nx0 ≠ nx1, nx1 ≠ nx, nx < #x cu, ny < #y cu, nz < #z cu ⊦ |
ny0 = ny, (cu[nx0, ny0, nz0 := a])[nx, ny, nz] ≠ ((cu[nx1, ny, nz := b])[nx0, ny0, nz0 := a])[nx, ny, nz], nx0 ≠ nx1, nx1 ≠ nx, nz < #z cu, ny < #y cu, nx < #x cu ⊦
Used simplifier rules: put-otherdepth: ⊦ ny ≠ ny0 → (cu[nx, ny, nz := a])[nx0, ny0, nz0] = cu[nx0, ny0, nz0]; put-otherwidth: ⊦ nx ≠ nx0 → (cu[nx, ny, nz := a])[nx0, ny0, nz0] = cu[nx0, ny0, nz0]; Used formulas: ny0 = ny
| ny0 = ny, (cu[nx0, ny0, nz0 := a])[nx, ny, nz] ≠ ((cu[nx1, ny, nz := b])[nx0, ny0, nz0 := a])[nx, ny, nz], nx0 ≠ nx1, nx1 ≠ nx, nz < #z cu, ny < #y cu, nx < #x cu ⊦ |
(cu[nx0, ny, nz0 := a])[nx, ny, nz] ≠ ((cu[nx1, ny, nz := b])[nx0, ny, nz0 := a])[nx, ny, nz], nx0 ≠ nx1, nx1 ≠ nx, nx < #x cu, ny < #y cu, nz < #z cu ⊦
| (cu[nx0, ny, nz0 := a])[nx, ny, nz] ≠ ((cu[nx1, ny, nz := b])[nx0, ny, nz0 := a])[nx, ny, nz], nx0 ≠ nx1, nx1 ≠ nx, nx < #x cu, ny < #y cu, nz < #z cu ⊦ |
nz0 = nz, (cu[nx0, ny, nz0 := a])[nx, ny, nz] ≠ ((cu[nx1, ny, nz := b])[nx0, ny, nz0 := a])[nx, ny, nz], nx0 ≠ nx1, nx1 ≠ nx, nz < #z cu, ny < #y cu, nx < #x cu ⊦
Used simplifier rules: put-otherheight: ⊦ nz ≠ nz0 → (cu[nx, ny, nz := a])[nx0, ny0, nz0] = cu[nx0, ny0, nz0]; put-otherwidth: ⊦ nx ≠ nx0 → (cu[nx, ny, nz := a])[nx0, ny0, nz0] = cu[nx0, ny0, nz0]; Used formulas: nz0 = nz
| nz0 = nz, (cu[nx0, ny, nz0 := a])[nx, ny, nz] ≠ ((cu[nx1, ny, nz := b])[nx0, ny, nz0 := a])[nx, ny, nz], nx0 ≠ nx1, nx1 ≠ nx, nz < #z cu, ny < #y cu, nx < #x cu ⊦ |
(cu[nx0, ny, nz := a])[nx, ny, nz] ≠ ((cu[nx1, ny, nz := b])[nx0, ny, nz := a])[nx, ny, nz], nx0 ≠ nx1, nx1 ≠ nx, nx < #x cu, ny < #y cu, nz < #z cu ⊦
| (cu[nx0, ny, nz := a])[nx, ny, nz] ≠ ((cu[nx1, ny, nz := b])[nx0, ny, nz := a])[nx, ny, nz], nx0 ≠ nx1, nx1 ≠ nx, nx < #x cu, ny < #y cu, nz < #z cu ⊦ |
Used simplifier rules: 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; put-same: nx < #x cu, ny < #y cu, nz < #z cu ⊦ (cu[nx, ny, nz := a])[nx, ny, nz] = a; put-otherwidth: ⊦ nx ≠ nx0 → (cu[nx, ny, nz := a])[nx0, ny0, nz0] = cu[nx0, ny0, nz0]; Used formulas: nx0 = nx
| ((cu[nx0, ny0, nz0 := a])[nx1, ny, nz1 := b])[nx, ny, nz] ≠ ((cu[nx1, ny, nz1 := b])[nx0, ny0, nz0 := a])[nx, ny, nz], nz1 ≠ nz, nx < #x cu, ny < #y cu, nz < #z cu, nx0 ≠ nx1 ∨ ny0 ≠ ny ∨ nz0 ≠ nz1 ∨ ¬ nx1 < #x cu ∨ ¬ nz1 < #z cu ⊦ |
(cu[nx0, ny, nz0 := a])[nx, ny, nz] ≠ ((cu[nx1, ny, nz1 := b])[nx0, ny, nz0 := a])[nx, ny, nz], nz0 ≠ nz1, nz1 ≠ nz, nz < #z cu, ny < #y cu, nx < #x cu ⊦
Used simplifier rules: 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]; lf-02: ⊦ m < n ∧ m = n0 → n0 < n; (forward) from specification nat-basic
| (cu[nx0, ny, nz0 := a])[nx, ny, nz] ≠ ((cu[nx1, ny, nz1 := b])[nx0, ny, nz0 := a])[nx, ny, nz], nz0 ≠ nz1, nz1 ≠ nz, nz < #z cu, ny < #y cu, nx < #x cu ⊦ |
nz0 = nz, (cu[nx0, ny, nz0 := a])[nx, ny, nz] ≠ ((cu[nx1, ny, nz1 := b])[nx0, ny, nz0 := a])[nx, ny, nz], nz0 ≠ nz1, nz1 ≠ nz, nx < #x cu, ny < #y cu, nz < #z cu ⊦
Used simplifier rules: put-otherheight: ⊦ nz ≠ nz0 → (cu[nx, ny, nz := a])[nx0, ny0, nz0] = cu[nx0, ny0, nz0]; Used formulas: nz0 = nz
| nz0 = nz, (cu[nx0, ny, nz0 := a])[nx, ny, nz] ≠ ((cu[nx1, ny, nz1 := b])[nx0, ny, nz0 := a])[nx, ny, nz], nz0 ≠ nz1, nz1 ≠ nz, nx < #x cu, ny < #y cu, nz < #z cu ⊦ |
(cu[nx0, ny, nz := a])[nx, ny, nz] ≠ ((cu[nx1, ny, nz1 := b])[nx0, ny, nz := a])[nx, ny, nz], nz1 ≠ nz, nz < #z cu, ny < #y cu, nx < #x cu ⊦
| (cu[nx0, ny, nz := a])[nx, ny, nz] ≠ ((cu[nx1, ny, nz1 := b])[nx0, ny, nz := a])[nx, ny, nz], nz1 ≠ nz, nz < #z cu, ny < #y cu, nx < #x cu ⊦ |
Used simplifier rules: 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; put-same: nx < #x cu, ny < #y cu, nz < #z cu ⊦ (cu[nx, ny, nz := a])[nx, ny, nz] = a; put-otherwidth: ⊦ nx ≠ nx0 → (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 formulas: nx0 = nx
| ((cu[nx0, ny0, nz0 := a])[nx1, ny1, nz1 := b])[nx, ny, nz] ≠ ((cu[nx1, ny1, nz1 := b])[nx0, ny0, nz0 := a])[nx, ny, nz], ny1 ≠ ny, nx < #x cu, ny < #y cu, nz < #z cu, nx0 ≠ nx1 ∨ ny0 ≠ ny1 ∨ nz0 ≠ nz1 ∨ ¬ nx1 < #x cu ∨ ¬ ny1 < #y cu ∨ ¬ nz1 < #z cu ⊦ |
(cu[nx0, ny0, nz0 := a])[nx, ny, nz] ≠ ((cu[nx1, ny1, nz1 := b])[nx0, ny0, nz0 := a])[nx, ny, nz], ny0 ≠ ny1, ny1 ≠ ny, nx < #x cu, ny < #y cu, nz < #z cu ⊦
Used simplifier rules: put-otherdepth: ⊦ ny ≠ ny0 → (cu[nx, ny, nz := a])[nx0, ny0, nz0] = cu[nx0, ny0, nz0];
| (cu[nx0, ny0, nz0 := a])[nx, ny, nz] ≠ ((cu[nx1, ny1, nz1 := b])[nx0, ny0, nz0 := a])[nx, ny, nz], ny0 ≠ ny1, ny1 ≠ ny, nx < #x cu, ny < #y cu, nz < #z cu ⊦ |
ny0 = ny, (cu[nx0, ny0, nz0 := a])[nx, ny, nz] ≠ ((cu[nx1, ny1, nz1 := b])[nx0, ny0, nz0 := a])[nx, ny, nz], ny0 ≠ ny1, ny1 ≠ ny, nz < #z cu, ny < #y cu, nx < #x cu ⊦
Used simplifier rules: put-otherdepth: ⊦ ny ≠ ny0 → (cu[nx, ny, nz := a])[nx0, ny0, nz0] = cu[nx0, ny0, nz0]; Used formulas: ny0 = ny
| ny0 = ny, (cu[nx0, ny0, nz0 := a])[nx, ny, nz] ≠ ((cu[nx1, ny1, nz1 := b])[nx0, ny0, nz0 := a])[nx, ny, nz], ny0 ≠ ny1, ny1 ≠ ny, nz < #z cu, ny < #y cu, nx < #x cu ⊦ |
(cu[nx0, ny, nz0 := a])[nx, ny, nz] ≠ ((cu[nx1, ny1, nz1 := b])[nx0, ny, nz0 := a])[nx, ny, nz], ny1 ≠ ny, nx < #x cu, ny < #y cu, nz < #z cu ⊦
| (cu[nx0, ny, nz0 := a])[nx, ny, nz] ≠ ((cu[nx1, ny1, nz1 := b])[nx0, ny, nz0 := a])[nx, ny, nz], ny1 ≠ ny, nx < #x cu, ny < #y cu, nz < #z cu ⊦ |
nz0 = nz, (cu[nx0, ny, nz0 := a])[nx, ny, nz] ≠ ((cu[nx1, ny1, nz1 := b])[nx0, ny, nz0 := a])[nx, ny, nz], ny1 ≠ ny, nz < #z cu, ny < #y cu, nx < #x cu ⊦
Used simplifier rules: put-otherheight: ⊦ nz ≠ nz0 → (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]; Used formulas: nz0 = nz
| nz0 = nz, (cu[nx0, ny, nz0 := a])[nx, ny, nz] ≠ ((cu[nx1, ny1, nz1 := b])[nx0, ny, nz0 := a])[nx, ny, nz], ny1 ≠ ny, nz < #z cu, ny < #y cu, nx < #x cu ⊦ |
(cu[nx0, ny, nz := a])[nx, ny, nz] ≠ ((cu[nx1, ny1, nz1 := b])[nx0, ny, nz := a])[nx, ny, nz], ny1 ≠ ny, nx < #x cu, ny < #y cu, nz < #z cu ⊦
| (cu[nx0, ny, nz := a])[nx, ny, nz] ≠ ((cu[nx1, ny1, nz1 := b])[nx0, ny, nz := a])[nx, ny, nz], ny1 ≠ ny, nx < #x cu, ny < #y cu, nz < #z cu ⊦ |
Used simplifier rules: 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; put-same: nx < #x cu, ny < #y cu, nz < #z cu ⊦ (cu[nx, ny, nz := a])[nx, ny, nz] = a; 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]; Used formulas: nx0 = nx
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.