Documentation

Provenance.Semirings.Lukasiewicz

Łukasiewicz m-semiring #

This file defines the Łukasiewicz (fuzzy logic) semiring over rationals [0,1]. Addition is max, multiplication is the Łukasiewicz t-norm max(a + b - 1, 0), zero is 0, and one is 1.

The Łukasiewicz semiring is absorptive and idempotent, and satisfies left-distributivity of multiplication over monus.

This semiring is discussed as a provenance semiring in Grädel & Tannen, Provenance Analysis and Semiring Semantics for First-Order Logic.

References #

@[reducible, inline]

The Łukasiewicz semiring: rationals in [0,1] with max as addition and the Łukasiewicz t-norm max(a + b - 1, 0) as multiplication.

Equations
Instances For
    Dependency graph
    Dependency graph
    Dependency graph
    @[instance_reducible]
    Equations
    Dependency graph
    @[instance_reducible]
    Equations
    Dependency graph
    @[instance_reducible]
    Equations
    Dependency graph
    theorem Lukasiewicz.sub_def (a b : Lukasiewicz) :
    a - b = if a b then 0, else a
    Dependency graph
    Dependency graph
    Dependency graph
    @[instance_reducible]
    Equations
    • One or more equations did not get rendered due to their size.
    Dependency graph
    @[instance_reducible]
    Equations
    • One or more equations did not get rendered due to their size.
    Dependency graph
    Dependency graph
    Dependency graph
    Dependency graph
    Dependency graph
    Dependency graph

    Lukasiewicz has characteristic 0 in the CharP sense: it is idempotent and nontrivial, so every positive natural-number cast equals 1.

    Dependency graph
    @[instance_reducible]

    Lukasiewicz is a commutative m-semiring. The natural order is the usual rational order, and the monus is a if a > b, 0 if a ≤ b. The δ operator matches ProvSQL's Lukasiewicz::delta: the support indicator.

    Equations
    • One or more equations did not get rendered due to their size.
    Dependency graph
    Dependency graph

    Łukasiewicz multiplication is not idempotent: (1/2) * (1/2) = max(0, 0) = 0 ≠ 1/2.

    Dependency graph

    On the Łukasiewicz semiring the identity is not an admissible δ, even though the semiring is absorptive (Lukasiewicz.absorptive): what delta_absorb asks of δ := id is the lattice law a ⊗ (a ⊕ b) = a, which at a = b = 1/2 reads 1/2 ⊗ 1/2 = max(0, 0) = 0 ≠ 1/2. This is why the instance takes the support indicator (ProvSQL's Lukasiewicz::delta).

    Dependency graph

    There is no semiring homomorphism from BoolFunc Y to the Łukasiewicz semiring sending the variables to arbitrary values: Łukasiewicz multiplication is not idempotent ((1/2) ⊗ (1/2) = 0 ≠ 1/2), contradicting var i * var i = var i in BoolFunc Y.

    Dependency graph
    Dependency graph