Here are some axioms for strings, and theorems derivable from them.

A1. We assume that there is at least one unit string: `∃υ unit(υ)`

. Generally we’ll reserve variables `υ`

and `ν`

to designate units.

A2. We assume that `⁀`

is an associative binary operation over strings.

A3. These axioms are formulated so as *not* to assume that there is an empty string. However we do specify how an empty string behaves if there is one: `∀α,β (empty(α) ⊃ α⁀β = β = β⁀α)`

. It follows that there is at most one empty string.

A4. Unit strings are not decomposable into other non-empty strings: `∀α,β (unit(α⁀β) ⊃ empty(α) ∨ empty(β))`

. (If there are no empty strings, then the antecedent can never be true.)

A5. `∀υ,α (unit(υ) ⊃ ~empty(υ⁀α) ∧ ~empty(α⁀υ))`

A6. `∀α,β,α′,β′ (α⁀β = α′⁀β′ ⊃ (α = α′ ∧ β = β′) ∨ ∃γ (α′ = α⁀γ ∧ β = γ⁀β′) ∨ ∃γ (α = α′⁀γ ∧ β′ = γ⁀β))`

A7. Induction: for any claim `Φ( )`

, you can conclude that `∀α Φ(α)`

if you are able to prove these:

- If there’s an empty string
`ɛ`

, then`Φ(ɛ)`

. - For any unit string
`υ`

,`Φ(υ)`

. - Whenever
`Φ`

holds of a string`η`

, it also holds of`η⁀υ`

for each unit string`υ`

. - Whenever
`Φ`

holds of a string`η`

, it also holds of`υ⁀η`

for each unit string`υ`

.

You only need to prove one of (c) or (d), not both. And if you know that there is an empty string `ɛ`

, then proving (a) and one of (c) or (d) will give you (b) directly, without needing to prove it separately.

T1. No string is both a unit and empty.

T2. `∀υ,α (unit(υ) ∧ unit(υ⁀α) ⊃ empty(α))`

T3. `∀υ,α (unit(υ) ∧ unit(α⁀υ) ⊃ empty(α))`

T4. `∀α,β (empty(α⁀β) ⊃ empty(α) ∧ empty(β))`

T5. `∀υ,α,β (unit(υ) ∧ υ⁀α = υ⁀β ⊃ α = β)`

T6. `∀υ,α,β (unit(υ) ∧ α⁀υ = β⁀υ ⊃ α = β)`

The previous two are known as **cancellation laws.**

T7. `∀υ,ν,α,β (unit(υ) ∧ unit(ν) ∧ υ⁀α = ν⁀β ⊃ υ = ν)`

T8. `∀υ,ν,α,β (unit(υ) ∧ unit(ν) ∧ υ⁀α = ν⁀β ⊃ υ = ν)`

T9. `∀υ,δ,α,β (unit(υ) ∧ υ⁀δ = α⁀β ⊃ empty(α) ∨ α = υ ∨ ∃γ (α = υ⁀γ))`

T10. `∀υ,δ,α,β (unit(υ) ∧ δ⁀υ = α⁀β ⊃ empty(β) ∨ β = υ ∨ ∃γ (β = γ⁀υ))`

If there’s an empty string `ɛ`

, then then second disjunct in the consequent of T9 and T10 is redundant, because `ɛ`

can be the `γ`

in the third disjunct.

T11. `∀α (empty(α) | unit(α) | ∃υ,γ (unit(υ) ∧ α = υ⁀γ))`

T12. `∀α (empty(α) | unit(α) | ∃υ,γ (unit(υ) ∧ α = γ⁀υ))`

Here again, if there’s an empty string `ɛ`

, then the second disjunct of T11 and T12 is redundant, because `ɛ`

can be the `γ`

in the third disjunct.

T13. `∀α,β (α = α⁀β ⊃ empty(β))`

T14. `∀α,β (α = β⁀α ⊃ empty(β))`