Expand description

Path Semantical Quality

Path Semantical Quality is a partial equivalence relation that lifts biconditions with symbolic distinction. See paper.

For a different implementation of quality, see PSI in Avalog.

Work-around for symbolic distinction

IPL does not support symbolic distinction, so quality must be assumed explicitly.

Lifting equality into quality

EqQ<A, B>

This implementation lifts equality directly to quality. Since this is unsound without symbolic distinction, it is not possible to assume this directly.

Although IPL does not support symbolic distinction, one can use EqQ<A, B> ((a == b) => (a ~~ b)) to model symbolic distinction. This means EqQ<A, B> can be used as an assumption that A and B are symbolic distinct.

Seshatism vs Platonism

Seshatism is a way to reject two forms of Platonism:

  • ¬(a ~~ a): Seshatism
  • a ~~ a: Platonism 1 (Loop Witness)
  • a ~~ b: Platonism 2 (Product Witness)

Since a ~~ b implies a ~~ a, both Loop and Product Witness are rejected by Seshatism.

Seshatic Relations

Seshatic<A, B>

When a relation p(a, b) is Seshatic, it means that it implies Seshatism of either a or b:

p(a, b) => ¬(a ~~ a) ⋁ ¬(b ~~ b)

Pure Platonism

PurePlatonism<A, B> (feature flag is not needed)

Feature flag: “pure_platonism” (for convenience functions)

Pure Platonism is not strong enough to prove quality, but can prove False from Seshatism (Not<Q<A, A>>). Can be used when reasoning about Seshatism is not needed.

This implementation uses a 2-avatar of equality to model quality within IPL, by exploiting the property (a == b) => ( (a ~~ b) ⋁ ¬¬(a ~~ b) ).

IPL does not have symbolic distinction, so equality a == b can not be lifted properly into a ~~ b. However, since quality is not decidable within IPL, one can not prove a ~~ b from ¬¬(a ~~ b). This means that the 2-avatar can hide reflexivity, by lifting a == b to (a ~~ b) ⋁ ¬¬(a ~~ b).

Notice that this implementation does not support reasoning about Seshatism, because ¬(a ~~ a) (Seshatism) is absurd in this model (it proves anything). Proper Seshatism requires quality to use symbolic distinction instead of the trick above.

Interpreted as an Avatar Graph, the core is a == b and there are two 1-avatars:

  • (a ~~ b)
  • ¬¬(a ~~ b)

The 2-avatar integrates (a ~~ b) and ¬¬(a ~~ b) using .

Re-exports

pub use commute as symmetry;
pub use nq_commute as nq_symmetry;

Structs

Quality between A and B (A ~~ B).

Traits

Prevents other qualities of A from excluding B.

If something is qual to A, then A is qual to B.

Functions

¬(a ~~ b) ⋀ (a == b) ⋀ ((a == b) => ( (a ~~ b) ⋁ ¬¬(a ~~ b) )) => c.

Symmetry (a ~~ b) => (b ~~ a).

Equality maybe lift (a == b) => ( (a ~~ b) ⋁ true ).

Excluded middle with pure Platonism implies reflexivity.

Mirror with pure Platonism ((a == a) => ( (a ~~ a) ⋁ ¬¬(a ~~ a) )) => ¬¬(a ~~ a).

¬(a == b) => ¬(a ~~ b).

Negated symmetry ¬(a ~~ b) => ¬(b ~~ a).

(a ~~ b) ⋀ ¬(a ~~ c) => ¬(b ~~ c).

(a ~~ b) ⋀ ¬(b ~~ c) => ¬(a ~~ c).

(a ~~ b) => (a ~~ a).

(a ~~ b) => (b ~~ b).

eqq(a, b) => ¬(a ~~ b) == ¬(a == b).

Introduce a different proposition in right argument (keep left).

¬(a ~~ a) ⋀ ((a == a) => ( (a ~~ a) ⋁ ¬¬(a ~~ a) )) => b.

Introduce a different proposition in left argument (keep right).

Convert inquality to inequality ¬(a ~~ b) ⋀ eqq(a, b) => ¬(a == b).

Converts to equality (a ~~ b) => (a == b).

Transitivity (a ~~ b) ⋀ (b ~~ c) => (a ~~ c).

Type Definitions

Lifts equality into quality.

Pure Platonism assumption.

A Seshatic relation ¬(a ~~ a) ⋁ ¬(b ~~ b).