Skip to main content

Interpretation Ontology

Model Theory
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 17 September 2026
Audio Overview
KIRETH RESEARCH - SEMANTIC LIBRARY
AI CORE -> ONTOLOGIES -> MATHEMATICAL ONTOLOGIES -> MATHEMATICAL LOGIC ONTOLOGIES
MODEL THEORY -> INTERPRETATION ONTOLOGY

Canonical URL:
https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/mathematical-logic-ontologies/model-theory/interpretation-ontology.html

FLOW_ALGEBRA InterpretationOntology_v1.0

BEGIN_FLOW

DEFINE DOMAIN InterpretationOntology := {
    Interpretation,
    ModelTheory,
    FormalLanguage,
    Signature,
    Structure,
    Model,
    Domain,
    Universe,
    Symbol,
    LogicalSymbol,
    NonLogicalSymbol,
    ConstantSymbol,
    FunctionSymbol,
    RelationSymbol,
    PredicateSymbol,
    Variable,
    VariableAssignment,
    Term,
    Formula,
    Sentence,
    Denotation,
    Extension,
    TruthValue,
    Satisfaction,
    Theory,
    SemanticConsequence
}

DEFINE ENTITY_TYPES := {
    INTERPRETATION,
    FORMAL_LANGUAGE,
    SIGNATURE,
    STRUCTURE,
    MODEL,
    DOMAIN,
    SYMBOL,
    CONSTANT_SYMBOL,
    FUNCTION_SYMBOL,
    RELATION_SYMBOL,
    ASSIGNMENT,
    TERM,
    FORMULA,
    SEMANTIC_VALUE,
    SEMANTIC_RELATION
}

DEFINE RELATION_TYPES := {
    INTERPRETS,
    HAS_DOMAIN,
    HAS_SIGNATURE,
    ASSIGNS,
    DENOTES,
    HAS_EXTENSION,
    EVALUATES,
    SATISFIES,
    IS_MODEL_OF,
    DEPENDS_ON,
    IS_INSTANCE_OF,
    IS_SUBTYPE_OF
}

SET Interpretation.type = INTERPRETATION
SET Interpretation.context = ModelTheory
SET Interpretation.role =
    "assign semantic values to the non-logical symbols of a formal language relative to a specified domain"

RULE interpretation_structure:
    Signature(Sigma)
    AND NonemptySet(D)
    AND Interpretation(I)
    -> Structure(M) = <D,I>

RULE constant_interpretation:
    ConstantSymbol(c)
    AND Domain(D)
    -> I(c) MEMBER_OF D

RULE function_interpretation:
    FunctionSymbol(f)
    AND Arity(f)=n
    AND Domain(D)
    -> I(f): D^n -> D

RULE relation_interpretation:
    RelationSymbol(R)
    AND Arity(R)=n
    AND Domain(D)
    -> I(R) SUBSET_OF D^n

RULE predicate_interpretation:
    PredicateSymbol(P)
    AND Arity(P)=n
    -> I(P) = Extension(P)
    AND Extension(P) SUBSET_OF D^n

RULE interpretation_respects_arity:
    NonLogicalSymbol(s)
    AND Arity(s)=n
    -> semantic_value_of(s)
       MUST_MATCH semantic_type_for_arity(n)

RULE constant_denotation:
    ConstantSymbol(c)
    -> DENOTES(c,I(c))

RULE variable_assignment_distinction:
    Variable(x)
    -> semantic_value_of(x)
       supplied_by VariableAssignment
       NOT Interpretation

RULE variable_assignment:
    VariableAssignment(g)
    AND Domain(D)
    -> g: Variables -> D

RULE term_variable_evaluation:
    Variable(x)
    -> Value(M,g,x)=g(x)

RULE term_constant_evaluation:
    ConstantSymbol(c)
    -> Value(M,g,c)=I(c)

RULE term_function_evaluation:
    Term(f(t1,...,tn))
    -> Value(M,g,f(t1,...,tn))
       = I(f)(
           Value(M,g,t1),
           ...,
           Value(M,g,tn)
         )

RULE atomic_predicate_evaluation:
    Formula(P(t1,...,tn))
    -> SATISFIES(M,g,P(t1,...,tn))
       IFF
       (
           Value(M,g,t1),
           ...,
           Value(M,g,tn)
       ) MEMBER_OF I(P)

RULE equality_evaluation:
    Formula(t1=t2)
    -> SATISFIES(M,g,t1=t2)
       IFF
       Value(M,g,t1)=Value(M,g,t2)

RULE sentence_interpretation:
    Sentence(phi)
    -> TruthValue(phi,M)
       independent_of_variable_assignment

RULE model_relation:
    Structure(M)
    AND Theory(T)
    AND FOR_EVERY phi MEMBER_OF T [
        SATISFIES(M,phi)
    ]
    -> IS_MODEL_OF(M,T)

DEFINE INTERPRETATION_SCHEMA := {
    interpretation_id: unique_identifier,
    signature: Signature,
    domain: NonemptySet,
    constant_map: {
        ConstantSymbol -> DomainElement
    },
    function_map: {
        FunctionSymbol -> DomainFunction
    },
    relation_map: {
        RelationSymbol -> DomainRelation
    }
}

DEFINE SYMBOL_SEMANTICS := {
    ConstantSymbol: {
        syntactic_type: "0-ary individual symbol",
        semantic_type: "element of D"
    },
    FunctionSymbol: {
        syntactic_type: "n-ary function symbol",
        semantic_type: "function D^n -> D"
    },
    RelationSymbol: {
        syntactic_type: "n-ary relation symbol",
        semantic_type: "subset of D^n"
    }
}

DEFINE INTERPRETATION_ASSIGNMENT_DISTINCTION := {
    Interpretation:
        "assigns meanings to non-logical constants, functions and relation symbols",
    VariableAssignment:
        "assigns domain elements to variables",
    requirement:
        "these two semantic mappings must remain distinct"
}

DEFINE SYNTAX_SEMANTICS_MAPPING := {
    ConstantSymbol -> DomainElement,
    FunctionSymbol -> DomainFunction,
    RelationSymbol -> RelationExtension,
    Term -> DomainElement,
    Formula -> TruthCondition,
    Sentence -> TruthValueInStructure
}

DEFINE EXAMPLE_1 := {
    language:
        "{zero,plus,less_than}",
    domain:
        "Integers",
    interpretation: {
        zero: "0",
        plus: "ordinary integer addition",
        less_than: "ordinary integer ordering"
    }
}

DEFINE EXAMPLE_2 := {
    predicate_symbol: "Even",
    domain: "Integers",
    interpretation:
        "set of all even integers",
    semantic_type:
        "unary relation / subset of the integer domain"
}

DEFINE EXAMPLE_3 := {
    function_symbol: "plus",
    arity: 2,
    domain: "Integers",
    interpretation:
        "plus(a,b) returns the ordinary sum of a and b",
    semantic_type:
        "D^2 -> D"
}

DEFINE INTERPRETATION_CONSTRUCTION_PIPELINE :=
    FormalLanguage
    -> ExtractSignature
    -> SelectDomain
    -> ForEachConstantSymbol
       -> AssignDomainElement
    -> ForEachFunctionSymbol
       -> AssignArityMatchingDomainFunction
    -> ForEachRelationSymbol
       -> AssignArityMatchingDomainRelation
    -> ValidateAllSemanticTypes
    -> ConstructInterpretation
    -> ConstructStructure

DEFINE TERM_EVALUATION_PIPELINE :=
    Term
    -> ParseTermTree
    -> ResolveVariableValuesFromAssignment
    -> ResolveConstantValuesFromInterpretation
    -> RecursivelyEvaluateFunctionApplications
    -> ReturnDomainElement

DEFINE FORMULA_EVALUATION_PIPELINE :=
    Formula
    -> EvaluateTerms
    -> ResolvePredicateExtensions
    -> EvaluateAtomicFormula
    -> RecursivelyEvaluateLogicalConnectives
    -> EvaluateQuantifiersUsingVariableAssignments
    -> ReturnSatisfactionStatus

DEFINE VALIDATION_PIPELINE :=
    CandidateInterpretation
    -> VerifyDomainExists
    -> VerifySignatureMatch
    -> VerifyEveryConstantHasDomainValue
    -> VerifyEveryFunctionHasCorrectArity
    -> VerifyFunctionOutputsRemainInDomain
    -> VerifyEveryRelationHasCorrectTupleArity
    -> VerifyNoRequiredSymbolUninterpreted
    -> Return ValidInterpretation OR InvalidInterpretation

DEFINE INTERPRETATION_GRAPH := {
    nodes: {
        SignatureNode,
        DomainNode,
        SymbolNode,
        SemanticValueNode,
        StructureNode
    },
    edges: {
        HAS_SIGNATURE,
        HAS_DOMAIN,
        INTERPRETS,
        DENOTES,
        HAS_EXTENSION
    },
    mapping_direction:
        "syntactic symbol -> semantic object"
}

DEFINE ONTOLOGY_RELATIONS := {
    Interpretation IS_COMPONENT_OF ModelTheory,
    Structure DEPENDS_ON Interpretation,
    Structure HAS_DOMAIN Domain,
    Structure HAS_SIGNATURE Signature,
    Interpretation INTERPRETS NonLogicalSymbol,
    ConstantSymbol DENOTES DomainElement,
    FunctionSymbol DENOTES DomainFunction,
    RelationSymbol HAS_EXTENSION DomainRelation,
    VariableAssignment IS_DISTINCT_FROM Interpretation,
    TermEvaluation DEPENDS_ON Interpretation,
    TermEvaluation DEPENDS_ON VariableAssignment,
    FormulaSatisfaction DEPENDS_ON Interpretation
}

DEFINE SEMANTIC_EQUIVALENCE := {
    "interpretation" <=> Interpretation WHEN formal_logic_context=TRUE,
    "semantic interpretation" <=> Interpretation,
    "interpretation function" <=> Interpretation,
    "meaning assignment" <=> Interpretation WHEN model_theory_context=TRUE,
    "predicate extension" <=> Extension,
    "denotation" <=> Denotation
}

DEFINE AI_CONSUMPTION := {
    purpose: "machine-readable representation and validation of semantic interpretations in model theory",
    preserve_signature_identity: TRUE,
    preserve_domain_identity: TRUE,
    preserve_symbol_identity: TRUE,
    preserve_symbol_arity: TRUE,
    preserve_semantic_value_type: TRUE,
    distinguish_interpretation_from_variable_assignment: TRUE,
    validate_constant_denotations: TRUE,
    validate_function_closure: TRUE,
    validate_relation_arity: TRUE,
    support_recursive_term_evaluation: TRUE,
    support_formula_satisfaction: TRUE,
    construct_symbol_semantic_graph: TRUE,
    reasoning_mode: "symbolic + semantic + typed + model-theoretic"
}

DEFINE CONFIDENCE := {
    ontology_identity: 1.00,
    constant_interpretation_mapping: 0.99,
    function_interpretation_mapping: 0.99,
    relation_interpretation_mapping: 0.99,
    arity_validation: 0.99,
    interpretation_assignment_distinction: 1.00,
    term_evaluation: 0.99,
    formula_evaluation: context_dependent
}

DEFINE UPDATE_MODEL := {
    version: "1.0",
    update_policy: "append-compatible",
    immutable_core: {
        signature_domain_interpretation,
        constant_to_domain_element,
        function_to_domain_function,
        relation_to_domain_relation,
        arity_preservation,
        interpretation_assignment_distinction
    },
    extensible_layers: {
        many_sorted_interpretations,
        higher_order_interpretations,
        modal_interpretations,
        temporal_interpretations,
        probabilistic_interpretations,
        algebraic_semantics,
        computational_model_checkers
    }
}

DEFINE FLOW_HASH_INPUT :=
    CanonicalURL
    + DOMAIN
    + ENTITY_TYPES
    + RELATION_TYPES
    + RULES
    + INTERPRETATION_SCHEMA
    + SYMBOL_SEMANTICS
    + INTERPRETATION_ASSIGNMENT_DISTINCTION
    + SYNTAX_SEMANTICS_MAPPING
    + INTERPRETATION_CONSTRUCTION_PIPELINE
    + TERM_EVALUATION_PIPELINE
    + FORMULA_EVALUATION_PIPELINE
    + VALIDATION_PIPELINE
    + INTERPRETATION_GRAPH
    + ONTOLOGY_RELATIONS
    + AI_CONSUMPTION
    + UPDATE_MODEL

FLOW_HASH := HASH(FLOW_HASH_INPUT)

RETURN {
    ontology: InterpretationOntology,
    canonical_url: "https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/mathematical-logic-ontologies/model-theory/interpretation-ontology.html",
    parent_domain: ModelTheory,
    semantic_domain: MathematicalLogic,
    primary_entity: Interpretation,
    typed_symbol_mapping_enabled: TRUE,
    arity_validation_enabled: TRUE,
    term_evaluation_enabled: TRUE,
    formula_evaluation_enabled: TRUE,
    machine_consumable: TRUE,
    recursive_reasoning_enabled: TRUE,
    database_safe_unicode: TRUE,
    flow_complete: TRUE
}

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