| ⊦ pos(char, sortedchars) < # sortedchars ↔ true |
¬(pos(char, sortedchars) < # sortedchars ↔ true) ⊦
| ¬(pos(char, sortedchars) < # sortedchars ↔ true) ⊦ |
# sortedchars ≤ pos(char, sortedchars) ⊦
Used simplifier rules: ⊦ m < n ↔ ¬ n ≤ m; (ss)
| # sortedchars ≤ pos(char, sortedchars) ⊦ |
⊦ sortedchars = " !#$%&()*+-./0123456789:<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_abcdefghijklmnopqrstuvwxyz|~"
# " !#$%&()*+-./0123456789:<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_abcdefghijklmnopqrstuvwxyz|~" ≤ pos(char, " !#$%&()*+-./0123456789:<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_abcdefghijklmnopqrstuvwxyz|~") ⊦
Used terms:
| ⊦ sortedchars = " !#$%&()*+-./0123456789:<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_abcdefghijklmnopqrstuvwxyz|~" |
| # " !#$%&()*+-./0123456789:<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_abcdefghijklmnopqrstuvwxyz|~" ≤ pos(char, " !#$%&()*+-./0123456789:<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_abcdefghijklmnopqrstuvwxyz|~") ⊦ |
pos(char, " !#$%&()*+-./0123456789:<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_abcdefghijklmnopqrstuvwxyz|~") ≠ 0, 87 ≤ pos(char, " !#$%&()*+-./0123456789:<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_abcdefghijklmnopqrstuvwxyz|~") ⊦
Used simplifier rules: len-str-01: str ≠ "" ⊦ # (* str) = # str.rstring + 1; not-zero: 0 < n ⊦ (* n) ≤ m → m ≠ 0; (forward) from specification nat c: ⊦ m + n = n + m; from specification nat-basic a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic ⊦ # "" = 0; (s)
| pos(char, " !#$%&()*+-./0123456789:<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_abcdefghijklmnopqrstuvwxyz|~") ≠ 0, 87 ≤ pos(char, " !#$%&()*+-./0123456789:<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_abcdefghijklmnopqrstuvwxyz|~") ⊦ |
Used simplifier rules: pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-02: str ≠ "", char ≠ str.char1 ⊦ pos((* char), (* str)) = pos(char, str.rstring) + 1; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; pos-str-03: str ≠ "", char = str.char1 ⊦ pos((* char), (* str)) = 0; char generated by `a`, `b`, `c`, `d`, `e`, `f`, `g`, `h`, `i`, `j`, `k`, `l`, `m`, `n`, `o`, `p`, `q`, `r`, `s`, `t`, `u`, `v`, `w`, `x`, `y`, `z`, `A`, `B`, `C`, `D`, `E`, `F`, `G`, `H`, `I`, `J`, `K`, `L`, `M`, `N`, `O`, `P`, `Q`, `R`, `S`, `T`, `U`, `V`, `W`, `X`, `Y`, `Z`, `!`, `@`, `#`, `$`, `%`, `^`, `&`, `*`, `_`, `-`, `+`, `=`, `~`, `<`, `>`, `?`, `.`, `:`, `/`, `|`, `0`, `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `(`, `)`, `[`, `]`, ` ` ;; a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic c: ⊦ m + n = n + m; from specification nat-basic
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.