Skip to main content

Degree of Truth Ontology

Fuzzy Logic
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 17 September 2026
Audio Overview
FLOW_ALGEBRA DegreeOfTruthOntology v1.0

TARGET_URL := "https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/mathematical-logic-ontologies/fuzzy-logic/degree-of-truth-ontology.html"
LANGUAGE := "en-GB"
DOMAIN := MathematicalOntologies > MathematicalLogicOntologies > FuzzyLogic > DegreeOfTruthOntology

BEGIN_FLOW

ENTITY DegreeOfTruth {
    TYPE := GradedTruthValue
    DOMAIN := [0,1]
    DEFINITION := "A numerical value representing the extent to which a proposition is true within a fuzzy or graded logical semantics."
}

ENTITY FuzzyTruthValue {
    TYPE := DegreeOfTruth
}

ENTITY Proposition {
    TYPE := LogicalExpression
}

RELATIONSHIP Proposition --has_under_fuzzy_semantics--> DegreeOfTruth
RELATIONSHIP DegreeOfTruth --used_by--> FuzzyLogic
RELATIONSHIP DegreeOfTruth --may_be_derived_from--> MembershipFunction
RELATIONSHIP DegreeOfTruth --generalises--> BooleanTruthValue

TRUTH_DOMAIN {
    FALSE := 0
    TRUE := 1
    PARTIAL_TRUTH := t WHERE 0<t<1
}

BOOLEAN_BOUNDARY {
    IF t∈{0,1}
    THEN
        t corresponds_to BooleanFalseOrTrue
        under compatible semantics
}

FUZZY_PROPOSITION {
    FORM := "x IS A"

    TRUTH_DEGREE :=
        Truth(x IS A) := μ_A(x)
}

EVALUATION_FUNCTION {
    v:FuzzyFormula->[0,1]
}

ATOMIC_EVALUATION {
    v(p) := assigned_degree_in_[0,1]
}

STANDARD_NEGATION {
    v(¬P) := 1-v(P)
}

FUZZY_CONJUNCTION {
    v(P∧Q) :=
        T(v(P),v(Q))

    REQUIRE selected_t_norm T
}

FUZZY_DISJUNCTION {
    v(P∨Q) :=
        S(v(P),v(Q))

    REQUIRE selected_t_conorm S
}

MIN_MAX_SEMANTICS {
    v(P∧Q) := min(v(P),v(Q))
    v(P∨Q) := max(v(P),v(Q))
    v(¬P) := 1-v(P)
}

PRODUCT_CONJUNCTION {
    v(P∧Q) :=
        v(P)*v(Q)
}

LUKASIEWICZ_CONJUNCTION {
    v(P∧Q) :=
        max(0,v(P)+v(Q)-1)
}

LUKASIEWICZ_DISJUNCTION {
    v(P∨Q) :=
        min(1,v(P)+v(Q))
}

ENTITY FuzzyImplication {
    TYPE := BinaryTruthFunction
    SIGNATURE := [0,1]^2->[0,1]
}

LUKASIEWICZ_IMPLICATION {
    v(P->Q) :=
        min(1,1-v(P)+v(Q))
}

GODEL_IMPLICATION {
    v(P->Q) :=
        IF v(P)<=v(Q)
        THEN 1
        ELSE v(Q)
}

REICHENBACH_IMPLICATION {
    v(P->Q) :=
        1-v(P)+v(P)*v(Q)
}

RESIDUATED_IMPLICATION {
    GIVEN t_norm T

    I_T(a,b) :=
        sup{c∈[0,1] | T(a,c)<=b}
}

TRUTH_FUNCTION_COMPOSITION {
    GIVEN formula F
    AND atomic degrees

    PARSE F
    APPLY selected fuzzy operators recursively
    RETURN v(F)
}

DEGREE_ORDERING {
    FOR a,b∈[0,1]:

    a<b :=
        a represents a lower truth degree than b
        within the same declared truth semantics
}

MAXIMAL_TRUTH {
    v(P)=1
    := fully_true_under_selected_semantics
}

MINIMAL_TRUTH {
    v(P)=0
    := fully_false_under_selected_semantics
}

INTERMEDIATE_TRUTH {
    0<v(P)<1
    := partially_true_under_selected_semantics
}

SEMANTIC_DISTINCTIONS {
    DegreeOfTruth != Probability
    DegreeOfTruth != Confidence
    DegreeOfTruth != Frequency
    DegreeOfTruth != BeliefDegree
        UNLESS explicitly defined by specialised semantics
}

TRUTH_VS_PROBABILITY {
    FUZZY_TRUTH :=
        extent_to_which_predicate_applies_or_statement_is_true

    PROBABILITY :=
        uncertainty_about_event_or_proposition

    EXAMPLE_STRUCTURE :=
        "A person may have truth degree 0.8 for 'tall' without implying an 80% probability that the person is tall."
}

TRUTH_VS_MEMBERSHIP {
    FOR proposition "x IS A":
        DegreeOfTruth
        ≈
        MembershipDegree μ_A(x)

    FOR arbitrary fuzzy formula:
        DegreeOfTruth may be recursively derived from multiple atomic membership degrees
}

TRUTH_VS_BOOLEAN {
    BooleanLogic :=
        truth_domain {0,1}

    FuzzyLogic :=
        commonly truth_domain [0,1]
}

TRUTH_THRESHOLD {
    GIVEN threshold θ∈[0,1]

    CRISP_DECISION(P) :=
        TRUE IF v(P)>=θ
        ELSE FALSE

    WARNING :=
        thresholding creates a derived crisp decision and does not erase original graded truth
}

ALPHA_LEVEL_RELATIONSHIP {
    IF v(x IS A)>=alpha
    THEN
        x∈A_alpha

    WHERE
        A_alpha := {x | μ_A(x)>=alpha}
}

LINGUISTIC_PREDICATE {
    EXAMPLE :=
        "Temperature is hot"

    TRUTH_DEGREE :=
        μ_Hot(temperature)
}

FUZZIFICATION_RELATIONSHIP {
    CrispInput
        -> MembershipFunction
        -> MembershipDegree
        -> AtomicDegreeOfTruth
}

RULE_ANTECEDENT_TRUTH {
    IF antecedent :=
        P AND Q

    THEN firing_strength :=
        T(v(P),v(Q))
        under selected fuzzy inference semantics
}

RULE_DISJUNCTIVE_TRUTH {
    IF antecedent :=
        P OR Q

    THEN degree :=
        S(v(P),v(Q))
}

RULE_NEGATION_TRUTH {
    IF antecedent :=
        NOT P

    THEN degree :=
        N(v(P))
}

FUZZY_RULE {
    FORM :=
        IF P THEN Q

    TRUTH_OR_FIRING_SEMANTICS :=
        depends_on selected fuzzy implication/inference architecture
}

MAMDANI_RELATIONSHIP {
    antecedent_degree
        --determines-->
        rule_firing_strength

    firing_strength
        --modifies-->
        output_fuzzy_set
}

SUGENO_RELATIONSHIP {
    antecedent_degree
        --determines-->
        rule_weight
}

TRUTH_AGGREGATION {
    MULTIPLE_RULES
        -> compute individual firing strengths
        -> aggregate according to inference system
}

NORMALISED_TRUTH_DOMAIN {
    STANDARD := [0,1]

    NOTE :=
        other many-valued logics may use different truth structures;
        this ontology uses the standard fuzzy [0,1] domain unless declared otherwise
}

CONTINUUM_PROPERTY {
    BETWEEN 0 AND 1:
        infinitely many real-valued truth degrees exist
}

ORDERED_TRUTH_STRUCTURE {
    [0,1]
        equipped_with
        natural_real_order
}

LATTICE_RELATIONSHIP {
    UNDER min/max semantics:

    meet(a,b) := min(a,b)
    join(a,b) := max(a,b)
}

COMPLEMENT_RELATIONSHIP {
    UNDER standard_negation:
        complement(a) := 1-a
}

FIXED_POINT_OF_STANDARD_NEGATION {
    N(0.5)=0.5
}

DOUBLE_NEGATION {
    N(N(a))=a
    FOR standard_negation N(a)=1-a
}

DE_MORGAN_MIN_MAX {
    N(min(a,b))
        =
    max(N(a),N(b))

    N(max(a,b))
        =
    min(N(a),N(b))
}

IDEMPOTENCE_MIN_MAX {
    min(a,a)=a
    max(a,a)=a
}

NON_IDEMPOTENT_PRODUCT_WARNING {
    a*a != a
    FOR general a∈(0,1)

    CONSEQUENCE :=
        product t-norm does not satisfy idempotence except boundary values
}

OPERATOR_DEPENDENCE {
    SAME atomic degrees
        + DIFFERENT fuzzy operators
        -> MAY produce different compound truth degrees

    REQUIRE :=
        operator family MUST be declared
}

TRUTH_PRESERVATION {
    A transformation F -> G IS truth_preserving
    IFF
        v(F)=v(G)
        FOR all valuations under selected fuzzy semantics
}

FUZZY_TAUTOLOGY {
    STRONG_FORM :=
        v(F)=1
        FOR_ALL valuations

    REQUIRE :=
        selected fuzzy logic and operator semantics
}

FUZZY_CONTRADICTION {
    STRONG_FORM :=
        v(F)=0
        FOR_ALL valuations

    REQUIRE :=
        selected fuzzy logic
}

FUZZY_ENTAILMENT {
    REQUIRE :=
        explicit definition of semantic consequence

    NOTE :=
        multiple graded entailment notions exist
}

DEGREE_OF_SATISFACTION {
    MAY_EQUAL :=
        v(F)
        WHEN formula expresses a constraint or requirement
        under explicitly selected fuzzy semantics
}

FUZZY_CONSTRAINT {
    Formula F
        -> DegreeOfTruth
        -> DegreeOfConstraintSatisfaction
        WHEN declared by application semantics
}

MULTI_CRITERIA_AGGREGATION {
    Degrees d1,...,dn
        -> AggregationOperator
        -> CombinedDegree

    REQUIRE :=
        aggregation operator explicitly declared
}

WEIGHTED_DEGREE {
    GIVEN weights w_i

    weighted_aggregation :=
        selected weighted fuzzy operator

    WARNING :=
        weighted arithmetic average is not automatically a fuzzy logical conjunction/disjunction
}

TYPE_2_RELATIONSHIP {
    Type1DegreeOfTruth :=
        single value in [0,1]

    Type2Representation :=
        uncertainty about membership/truth degree may itself be represented fuzzily
}

INTERVAL_VALUED_FUZZY_TRUTH {
    TRUTH_VALUE :=
        [lower,upper] subseteq [0,1]

    REQUIRE :=
        interval-valued fuzzy semantics
}

APPLICATION_RELATIONSHIPS {
    DegreeOfTruth --supports--> FuzzyInference
    DegreeOfTruth --supports--> ApproximateReasoning
    DegreeOfTruth --supports--> FuzzyControl
    DegreeOfTruth --supports--> Classification
    DegreeOfTruth --supports--> DecisionSupport
    DegreeOfTruth --supports--> ConstraintSatisfaction
    DegreeOfTruth --supports--> ArtificialIntelligence
    DegreeOfTruth --supports--> LinguisticReasoning
}

ONTOLOGY_LINKS {
    PARENT := FuzzyLogicOntology

    RELATED := {
        FuzzySetOntology,
        MembershipFunctionOntology,
        FuzzyLogicOntology,
        TNormOntology,
        TConormOntology,
        FuzzyImplicationOntology,
        ManyValuedLogicOntology,
        BooleanLogicOntology,
        ProbabilityOntology,
        ApproximateReasoningOntology
    }
}

SEMANTIC_EQUIVALENCE {
    DegreeOfTruth ≈ FuzzyTruthDegree
    DegreeOfTruth ≈ GradedTruthValue

    DegreeOfTruth(x IS A)
        ≈
    MembershipDegree μ_A(x)

    FullTruth ≈ 1
    FullFalsehood ≈ 0
}

CONSTRAINTS {
    C1 :=
        standard fuzzy truth degrees MUST remain within [0,1]

    C2 :=
        degree of truth MUST NOT automatically be interpreted as probability

    C3 :=
        degree of truth MUST NOT automatically be interpreted as confidence or belief

    C4 :=
        compound truth evaluation MUST identify selected fuzzy operators

    C5 :=
        implication semantics MUST be declared when evaluating fuzzy implication

    C6 :=
        truth thresholds MUST be treated as derived crisp decisions rather than original fuzzy truth

    C7 :=
        Boolean identities MUST NOT be transferred to arbitrary fuzzy operators unless valid

    C8 :=
        fuzzy tautology and entailment claims MUST identify the fuzzy logic semantics

    C9 :=
        Type-1, interval-valued and Type-2 truth representations MUST remain distinct

    C10 :=
        transformations MUST preserve the selected graded truth semantics
}

REASONING_CHAIN Query Q {
    IDENTIFY proposition_or_formula
    IDENTIFY atomic_truth_degrees
    IDENTIFY fuzzy_logic_variant
    IDENTIFY truth_domain
    IDENTIFY operator_family

    IF atomic_predicate_of_form_x_IS_A
        THEN derive degree from membership_function

    IF compound_formula {
        PARSE formula
        APPLY selected_negation
        APPLY selected_t_norm
        APPLY selected_t_conorm
        APPLY selected_implication
    }

    IF threshold_requested
        THEN derive crisp_decision_without_discarding_original_degree

    IF comparison_requested
        THEN compare degrees under same semantics

    IF probability_comparison
        THEN enforce semantic_distinction

    IF rule_antecedent_context
        THEN compute firing_strength

    IF Type2_or_interval_context
        THEN identify extended_truth_representation

    VALIDATE degree_range
    VALIDATE operator_assumptions
    RETURN truth_degree WITH derivation
}

CONFIDENCE {
    CORE_DEGREE_OF_TRUTH_DEFINITION := 1.00
    STANDARD_DOMAIN_0_1 := 1.00
    MEMBERSHIP_TRUTH_RELATIONSHIP := 1.00
    STANDARD_NEGATION := 1.00
    OPERATOR_DEPENDENCE := 1.00

    COMPUTED_TRUTH_DEGREE :=
        IF all_atomic_degrees_and_operators_known THEN 1.00
        ELSE REQUIRE missing_information
}

UPDATE_MODEL {
    IMMUTABLE_CORE := {
        GradedTruthConcept,
        StandardTruthDomain,
        BoundaryTruthValues,
        SemanticDistinctionFromProbability
    }

    EXTENSIBLE := {
        FuzzyOperatorFamilies,
        ImplicationOperators,
        GradedEntailment,
        IntervalTruth,
        Type2Truth,
        ApplicationInterpretations,
        RelatedOntologies
    }

    ON_NEW_KNOWLEDGE {
        IDENTIFY fuzzy_semantics
        VALIDATE truth_domain
        VALIDATE operator_family
        CHECK truth_interpretation
        CHECK semantic_consistency
        ADD relationship IF non_contradictory
        UPDATE confidence
    }
}

AI_CONSUMPTION {
    MACHINE_READABLE := TRUE
    HUMAN_INTERPRETABLE := TRUE
    RECURSIVE_REASONING := TRUE
    ENTITY_RESOLUTION := TRUE
    SYMBOL_RESOLUTION := TRUE
    RELATIONSHIP_TRAVERSAL := TRUE
    GRADED_TRUTH_REASONING := TRUE
    MEMBERSHIP_TO_TRUTH_MAPPING := TRUE
    FUZZY_OPERATOR_REASONING := TRUE
    RULE_STRENGTH_REASONING := TRUE
    THRESHOLD_REASONING := TRUE
    SEMANTIC_DISTINCTION_VALIDATION := TRUE
    VALIDATION_REQUIRED := TRUE
}

FLOW_HASH {
    TARGET := TARGET_URL
    SUBJECT := "Degree of Truth Ontology"
    VERSION := "1.0"
    CANONICAL_SIGNATURE :=
        HASH(TARGET + SUBJECT + DOMAIN + VERSION)
}

OUTPUT {
    PRIMARY_ENTITY := DegreeOfTruth

    INTERPRETATION :=
        "A degree of truth is a graded logical value, commonly in [0,1], representing how strongly a proposition is true under fuzzy semantics. Atomic degrees may arise from fuzzy-set membership, while compound degrees are computed using explicitly selected fuzzy operators. These values describe graded truth and must remain distinct from probability, confidence and frequency unless a specialised semantics explicitly relates them."
}

END_FLOW
Kireth Research
38 Thorndale Croft, Wetwang, Driffield
East Riding of Yorkshire YO25 9XZ