Theory: string

Parents


Type constants


Term constants


Axioms


Definitions

string_TY_DEF
|- ?rep.
     TYPE_DEFINITION
       (TRP
         (\v tl.
           (v = INL one) /\ (LENGTH tl = 0) \/
           (?a. v = INR a) /\ (LENGTH tl = SUC 0)))
       rep
string_ISO_DEF
|- (!a. ABS_string (REP_string a) = a) /\
   (!r.
     TRP
       (\v tl.
         (v = INL one) /\ (LENGTH tl = 0) \/
         (?a. v = INR a) /\ (LENGTH tl = SUC 0))
       r =
     REP_string (ABS_string r) =
     r)
eps_DEF
|- "" = ABS_string (Node (INL one) [])
STRING_DEF
|- !a s. STRING a s = ABS_string (Node (INR a) [REP_string s])

Theorems

string_Axiom
|- !e f. ?!fn. (fn "" = e) /\ (!a s. fn (STRING a s) = f (fn s) a s)
string_Induct
|- !P. P "" /\ (!s. P s ==> (!a. P (STRING a s))) ==> (!s. P s)
string_CASES
|- !s. (s = "") \/ (?s' a. s = STRING a s')
STRING_11
|- !a s a' s'. (STRING a s = STRING a' s') = (a = a') /\ (s = s')
NOT_STRING_EMPTY
|- !s a. ~("" = STRING a s)