| ⊦ 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.