Module prop::hooo

source ·
Expand description

Exponential Propositions

Paper: HOOO Exponential Propositions

By using function pointers, one can force construction of propositions without capturing any variables, such that the proposition is tautological true, instead of just assuming it is true.

When a is tautological provable from b, one expresses it as a^b.

It turns out that this has the same semantics as Higher Order Operator Overloading (HOOO).

One motivation for developing HOOO for Exponential Propositions is to allow substitution in quality ~~ and qubit ~ operator for Path Semantical Quantum Propositional Logic (PSQ).

Vocabulary

  • Tautology tauto(a) := a^true
  • Paradox para(a) := false^a
  • Uniform uniform(a) := a^true ⋁ false^a
  • Theory theory(a) := ¬uniform(a)
  • Exists ∃ a { b } := ¬((¬b)^a)
  • Decidable (a ⋁ ¬a)^true

Overlap with Modal Logic

Modal Logic overlaps with HOOO EP:

  • Necessity □p := p^true
  • Possibility ◇p := p^true ⋁ theory(p)

For a derived Modal Logic from HOOO EP, see the modal module.

A paradoxical proposition false^p can be translated as □¬p.

Comment conventions

When a function comment says a => b, it is actually (a => b)^true.

The exponent is left out to make the comments more consistent for the whole library. Otherwise, it would be proper to use notation for Exponential Propositions everywhere, but this is unpractical since Exponential Propositions is viewed as an extension of normal Propositional Logic. One would like other modules to not use this notation unless they rely on this extension explicitly.

When a^true is used explicitly, the function returns a function pointer instead of using a _: True argument, since it is natural in programming to not add unused arguments.

Re-exports

Modules

  • Power extensions.
  • Tautology extensions.

Functions

Type Definitions

  • There exists statement ∃ a { b } := ¬((¬b)^a).
  • A paradoxical proposition para(a) := false^a.
  • a^b.
  • Power equivalence =^=.
  • A tautological proposition tauto(a) := a^true.
  • A proposition is a theory when non-uniform theory(a) := ¬(a^true ⋁ false^a).
  • A uniform proposition uniform(a) := a^true ⋁ false^a.