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