| #r mx = #r mx0, #c mx = #c mx0, c ≤ #c mx0 ⊦ scolsorted(mx, c, mx0) → perm(mx0.toArr, mx.toArr) |
#c mx = #c mx0, #r mx = #r mx0, scolsorted(mx, c, mx0), c ≤ #c mx0, ¬ perm(mx0.toArr, mx.toArr) ⊦
| #c mx = #c mx0, #r mx = #r mx0, scolsorted(mx, c, mx0), c ≤ #c mx0, ¬ perm(mx0.toArr, mx.toArr) ⊦ |
#c mx = #c mx0, #r mx = #r mx0, perm(mx0.toArc, mx.toArc), scolsorted(mx, c, mx0), c ≤ #c mx0, ¬ perm(mx0.toArr, mx.toArr) ⊦
#c mx = #c mx0, #r mx = #r mx0, scolsorted(mx, c, mx0), c ≤ #c mx0, ¬ perm(mx0.toArc, mx.toArc), ¬ perm(mx0.toArr, mx.toArr) ⊦
Used formulas: perm(mx0.toArc, mx.toArc)
| #c mx = #c mx0, #r mx = #r mx0, perm(mx0.toArc, mx.toArc), scolsorted(mx, c, mx0), c ≤ #c mx0, ¬ perm(mx0.toArr, mx.toArr) ⊦ |
⊦ perm(mx.toArr, mx.toArc)
#c mx = #c mx0, #r mx = #r mx0, perm(mx0.toArc, mx.toArc), perm(mx0.toArr, mx0.toArc), scolsorted(mx, c, mx0), c ≤ #c mx0, ¬ perm(mx0.toArr, mx.toArr) ⊦
Used terms: mx0
| ⊦ perm(mx.toArr, mx.toArc) |
| #c mx = #c mx0, #r mx = #r mx0, perm(mx0.toArc, mx.toArc), perm(mx0.toArr, mx0.toArc), scolsorted(mx, c, mx0), c ≤ #c mx0, ¬ perm(mx0.toArr, mx.toArr) ⊦ |
#c mx = #c mx0, #r mx = #r mx0, perm(mx0.toArr, mx0.toArc), perm(mx0.toArc, mx.toArc), perm(mx0.toArr, mx.toArc), scolsorted(mx, c, mx0), c ≤ #c mx0, ¬ perm(mx0.toArr, mx.toArr) ⊦
Used simplifier rules: trans: ⊦ perm(x, y) ∧ perm(y, z) → perm(x, z); (forward) from specification list-perm[oarray-sort-new]
| #c mx = #c mx0, #r mx = #r mx0, perm(mx0.toArr, mx0.toArc), perm(mx0.toArc, mx.toArc), perm(mx0.toArr, mx.toArc), scolsorted(mx, c, mx0), c ≤ #c mx0, ¬ perm(mx0.toArr, mx.toArr) ⊦ |
⊦ perm(mx.toArr, mx.toArc)
#c mx = #c mx0, #r mx = #r mx0, perm(mx0.toArr, mx.toArc), perm(mx0.toArc, mx.toArc), perm(mx0.toArr, mx0.toArc), perm(mx.toArr, mx.toArc), scolsorted(mx, c, mx0), c ≤ #c mx0, ¬ perm(mx0.toArr, mx.toArr) ⊦
Used terms: mx
| ⊦ perm(mx.toArr, mx.toArc) |
| #c mx = #c mx0, #r mx = #r mx0, perm(mx0.toArr, mx.toArc), perm(mx0.toArc, mx.toArc), perm(mx0.toArr, mx0.toArc), perm(mx.toArr, mx.toArc), scolsorted(mx, c, mx0), c ≤ #c mx0, ¬ perm(mx0.toArr, mx.toArr) ⊦ |
⊦ perm(x, y) ↔ perm(y, x)
Used simplifier rules: trans: ⊦ perm(x, y) ∧ perm(y, z) → perm(x, z); (forward) from specification list-perm[oarray-sort-new] Used terms: mx.toArr, mx.toArc
| ⊦ perm(x, y) ↔ perm(y, x) |
| #c mx = #c mx0, #r mx = #r mx0, scolsorted(mx, c, mx0), c ≤ #c mx0, ¬ perm(mx0.toArc, mx.toArc), ¬ perm(mx0.toArr, mx.toArr) ⊦ |
⊦ mx.toArc = toArc(mx, #c mx)
#c mx = #c mx0, #r mx = #r mx0, scolsorted(mx, c, mx0), c ≤ #c mx0, ¬ perm(toArc(mx0, #c mx0), mx.toArc), ¬ perm(mx0.toArr, mx.toArr) ⊦
Used terms: mx0
| ⊦ mx.toArc = toArc(mx, #c mx) |
| #c mx = #c mx0, #r mx = #r mx0, scolsorted(mx, c, mx0), c ≤ #c mx0, ¬ perm(toArc(mx0, #c mx0), mx.toArc), ¬ perm(mx0.toArr, mx.toArr) ⊦ |
⊦ mx.toArc = toArc(mx, #c mx)
#c mx = #c mx0, #r mx = #r mx0, scolsorted(mx, c, mx0), c ≤ #c mx0, ¬ perm(toArc(mx0, #c mx0), toArc(mx, #c mx)), ¬ perm(mx0.toArr, mx.toArr) ⊦
Used terms: mx
| ⊦ mx.toArc = toArc(mx, #c mx) |
| #c mx = #c mx0, #r mx = #r mx0, scolsorted(mx, c, mx0), c ≤ #c mx0, ¬ perm(toArc(mx0, #c mx0), toArc(mx, #c mx)), ¬ perm(mx0.toArr, mx.toArr) ⊦ |
#c mx = #c mx0, #r mx = #r mx0, scolsorted(mx, c, mx0), c ≤ #c mx0, ¬ perm(toArc(mx0, #c mx0), toArc(mx, #c mx0)), ¬ perm(mx0.toArr, mx.toArr) ⊦
| #c mx = #c mx0, #r mx = #r mx0, scolsorted(mx, c, mx0), c ≤ #c mx0, ¬ perm(toArc(mx0, #c mx0), toArc(mx, #c mx0)), ¬ perm(mx0.toArr, mx.toArr) ⊦ |
#r mx = #r mx0, #c mx = #c mx0, c ≤ #c mx0, m ≤ #c mx0 ⊦ scolsorted(mx, c, mx0) → perm(toArc(mx0, m), toArc(mx, m))
Used simplifier rules: ⊦ m ≤ n ↔ ¬ n < m; (ss) ⊦ ¬ n < n; (s) Used terms: mx0, #c mx0, mx, c
| #r mx = #r mx0, #c mx = #c mx0, c ≤ #c mx0, m ≤ #c mx0 ⊦ scolsorted(mx, c, mx0) → perm(toArc(mx0, m), toArc(mx, m)) |
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.