Skip to main content

Computability Theory Ontology

Computability 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
COMPUTABILITY THEORY -> COMPUTABILITY THEORY ONTOLOGY

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

FLOW_ALGEBRA ComputabilityTheoryOntology_v1.0

BEGIN_FLOW

DEFINE DOMAIN ComputabilityTheoryOntology := {
    ComputabilityTheory,
    Computation,
    EffectiveProcedure,
    Algorithm,
    ComputationModel,
    TuringMachine,
    UniversalTuringMachine,
    LambdaCalculus,
    PartialRecursiveFunction,
    PrimitiveRecursiveFunction,
    RegisterMachine,
    ComputableFunction,
    PartialComputableFunction,
    TotalComputableFunction,
    ComputableSet,
    DecidableSet,
    RecognisableSet,
    RecursivelyEnumerableSet,
    DecisionProblem,
    DecidableProblem,
    UndecidableProblem,
    SemiDecidableProblem,
    Language,
    DecidableLanguage,
    RecognisableLanguage,
    Input,
    Output,
    State,
    Configuration,
    Transition,
    Halting,
    Divergence,
    Acceptance,
    Rejection,
    Reduction,
    ManyOneReduction,
    TuringReduction,
    Oracle,
    RelativeComputability,
    HaltingProblem,
    Diagonalisation,
    RiceTheorem,
    ChurchTuringThesis,
    RecursionTheorem,
    Enumeration
}

DEFINE ENTITY_TYPES := {
    COMPUTABILITY_THEORY,
    COMPUTATION,
    EFFECTIVE_PROCEDURE,
    ALGORITHM,
    COMPUTATION_MODEL,
    MACHINE,
    MACHINE_STATE,
    CONFIGURATION,
    FUNCTION,
    SET,
    LANGUAGE,
    DECISION_PROBLEM,
    REDUCTION,
    ORACLE,
    THEOREM,
    COMPUTABILITY_PROPERTY,
    SEMANTIC_OBJECT
}

DEFINE RELATION_TYPES := {
    COMPUTES,
    SIMULATES,
    HAS_INPUT,
    HAS_OUTPUT,
    TRANSITIONS_TO,
    HALTS_ON,
    DIVERGES_ON,
    ACCEPTS,
    REJECTS,
    DECIDES,
    RECOGNISES,
    ENUMERATES,
    REDUCES_TO,
    MANY_ONE_REDUCES_TO,
    TURING_REDUCES_TO,
    QUERIES,
    IS_COMPUTABLE_BY,
    IS_DECIDABLE_BY,
    IS_RECOGNISABLE_BY,
    IS_INSTANCE_OF,
    IS_SUBTYPE_OF,
    DEPENDS_ON
}

SET ComputabilityTheoryOntology.type = COMPUTABILITY_THEORY
SET ComputabilityTheoryOntology.parent = ComputabilityTheory
SET ComputabilityTheoryOntology.semantic_domain = MathematicalLogic
SET ComputabilityTheoryOntology.role =
    "provide a typed machine-readable representation of effective computation, computable functions, decision problems, reductions and undecidability"

RULE computation_model:
    FormalMachineOrCalculus(C)
    AND defines_effective_step_relation(C)
    -> ComputationModel(C)

RULE turing_machine_computation:
    TuringMachine(M)
    AND Input(x)
    -> Computation(M,x)
       = sequence_of_configurations(
           InitialConfiguration(M,x),
           TransitionFunction(M)
         )

RULE deterministic_transition:
    TuringMachine(M)
    AND Configuration(C)
    AND TransitionDefined(M,C)
    -> THERE_EXISTS_UNIQUE Configuration(CPrime) [
        TRANSITIONS_TO(C,CPrime)
    ]

RULE machine_halting:
    Computation(M,x)
    AND reaches_halting_configuration
    -> HALTS_ON(M,x)

RULE machine_divergence:
    Computation(M,x)
    AND infinite_nonhalting_configuration_sequence
    -> DIVERGES_ON(M,x)

RULE machine_acceptance:
    Computation(M,x)
    AND reaches_accept_state
    -> ACCEPTS(M,x)

RULE machine_rejection:
    Computation(M,x)
    AND reaches_reject_state
    -> REJECTS(M,x)

RULE partial_computable_function:
    TuringMachine(M)
    AND FOR_EVERY input x [
        IF M halts_on x
        THEN output(M,x)=f(x)
    ]
    -> PartialComputableFunction(f)

RULE total_computable_function:
    PartialComputableFunction(f)
    AND FOR_EVERY input x [
        f(x) defined
    ]
    -> TotalComputableFunction(f)

RULE computable_function:
    TotalComputableFunction(f)
    -> ComputableFunction(f)

RULE decidable_language:
    Language(L)
    AND EXISTS Machine(M) [
        FOR_EVERY input x [
            HALTS_ON(M,x)
            AND (
                x MEMBER_OF L -> ACCEPTS(M,x)
            )
            AND (
                x NOT_MEMBER_OF L -> REJECTS(M,x)
            )
        ]
    ]
    -> DecidableLanguage(L)

RULE recognisable_language:
    Language(L)
    AND EXISTS Machine(M) [
        FOR_EVERY input x [
            x MEMBER_OF L -> ACCEPTS(M,x)
        ]
    ]
    -> RecognisableLanguage(L)

RULE decidable_is_recognisable:
    DecidableLanguage(L)
    -> RecognisableLanguage(L)

RULE recognisable_complement_condition:
    RecognisableLanguage(L)
    AND RecognisableLanguage(Complement(L))
    -> DecidableLanguage(L)

RULE recursively_enumerable_equivalence:
    RecognisableLanguage(L)
    -> RecursivelyEnumerableLanguage(L)

RULE enumeration:
    RecursivelyEnumerableLanguage(L)
    -> EXISTS Enumerator(E) [
        ENUMERATES(E,L)
    ]

RULE many_one_reduction:
    DecisionProblem(A)
    AND DecisionProblem(B)
    AND EXISTS TotalComputableFunction(f) [
        FOR_EVERY x [
            x MEMBER_OF A
            IFF
            f(x) MEMBER_OF B
        ]
    ]
    -> MANY_ONE_REDUCES_TO(A,B)

RULE reduction_undecidability_transfer:
    MANY_ONE_REDUCES_TO(A,B)
    AND UndecidableProblem(A)
    -> UndecidableProblem(B)

RULE reduction_decidability_transfer:
    MANY_ONE_REDUCES_TO(A,B)
    AND DecidableProblem(B)
    -> DecidableProblem(A)

RULE turing_reduction:
    Problem(A)
    AND Problem(B)
    AND OracleMachine(M,B)
    AND M decides A using queries_to B
    -> TURING_REDUCES_TO(A,B)

RULE relative_computability:
    TURING_REDUCES_TO(A,B)
    -> A is_computable_relative_to B

RULE universal_simulation:
    UniversalTuringMachine(U)
    AND EncodedMachine(M)
    AND Input(x)
    -> SIMULATES(U,M_on_x)

RULE halting_problem:
    HaltingProblem(HALT)
    -> HALT = {
        encode(M,x)
        | HALTS_ON(M,x)
    }

RULE halting_undecidability:
    -> UndecidableProblem(HaltingProblem)

RULE diagonalisation:
    Assume(TotalDecider(D) for self_referential_problem)
    -> ConstructDiagonalInput
    -> DeriveContradictoryBehaviour
    -> RejectExistenceOf(D)

RULE Rice_theorem:
    Property(P)
    AND NontrivialSemanticProperty(P)
    AND P applies_to_partial_computable_functions
    -> UndecidableProblem(
        MachineIndexSetForProperty(P)
    )

RULE Church_Turing_thesis:
    EffectiveProcedure(E)
    -> TuringComputableEquivalent(E)
       UNDER ChurchTuringThesis

DEFINE COMPUTATION_SCHEMA := {
    computation_id: unique_identifier,
    model: ComputationModel,
    program_or_machine: Machine,
    input: EncodedInput,
    configurations: OrderedSequence,
    termination_status: {
        halts,
        diverges,
        unknown_under_finite_observation
    },
    result: optional_Output
}

DEFINE FUNCTION_CLASSIFICATION := {
    PartialComputableFunction:
        "computable where defined; computation may diverge elsewhere",
    TotalComputableFunction:
        "computation halts with a value for every input",
    PrimitiveRecursiveFunction:
        "total function generated from primitive initial functions by composition and primitive recursion"
}

DEFINE LANGUAGE_CLASSIFICATION := {
    DecidableLanguage:
        "a machine halts on every input and correctly accepts or rejects",
    RecognisableLanguage:
        "a machine accepts every member; nonmembers may be rejected or cause divergence",
    RecursivelyEnumerableLanguage:
        "equivalent standard terminology for Turing-recognisable languages"
}

DEFINE REDUCTION_SCHEMA := {
    source_problem: A,
    target_problem: B,
    reduction_type: {
        ManyOneReduction,
        TuringReduction
    },
    transformation_or_oracle_procedure: ComputableProcess,
    correctness_condition:
        "solutions to B can be used in the specified way to solve A"
}

DEFINE CHURCH_TURING_MODEL := {
    classification:
        Thesis,
    statement:
        "every effectively calculable function is computable by a Turing-equivalent formalism",
    common_equivalent_formalisms: {
        TuringMachine,
        LambdaCalculus,
        PartialRecursiveFunctions,
        RegisterMachine
    }
}

DEFINE CRITICAL_DISTINCTIONS := {
    computable_vs_decidable: {
        computable:
            "usually classifies functions or effective transformations",
        decidable:
            "classifies yes/no problems, sets or languages with total decision procedures"
    },
    decidable_vs_recognisable: {
        decidable:
            "halts on all inputs",
        recognisable:
            "positive instances are guaranteed to be accepted, while negative instances may diverge"
    },
    total_vs_partial: {
        total:
            "defined on every input",
        partial:
            "may be undefined on some inputs"
    },
    reduction_direction: {
        "A REDUCES_TO B":
            "B is at least sufficient to solve A under the reduction",
        undecidability_transfer:
            "if A is undecidable and A reduces to B, then B is undecidable"
    },
    computability_vs_complexity: {
        computability:
            "asks whether a problem is algorithmically solvable",
        complexity:
            "asks what resources are needed"
    }
}

DEFINE EXAMPLE_1 := {
    function:
        "natural-number addition",
    classification:
        TotalComputableFunction
}

DEFINE EXAMPLE_2 := {
    problem:
        HaltingProblem,
    classification:
        UndecidableProblem
}

DEFINE EXAMPLE_3 := {
    language:
        "encodings of machines that halt on their given input",
    recognisable:
        TRUE,
    decidable:
        FALSE
}

DEFINE COMPUTATION_PIPELINE :=
    MachineDescription
    -> ParseComputationModel
    -> EncodeInput
    -> ConstructInitialConfiguration
    -> ApplyTransitionRelationRepeatedly
    -> DetectAcceptRejectOrHaltingState
    -> IF halt
       THEN ReturnOutput
    -> ELSE ContinueOrClassifyAsDivergentWhenProven

DEFINE CLASSIFICATION_PIPELINE :=
    FunctionSetLanguageOrProblem
    -> IdentifySpecification
    -> SearchForComputationProcedure
    -> DetermineHaltingRequirements
    -> TestTotality
    -> TestRecognitionCondition
    -> TestDecisionCondition
    -> ClassifyComputabilityStatus
    -> ReturnEvidenceAndLimits

DEFINE REDUCTION_REASONING_PIPELINE :=
    SourceProblem(A)
    -> TargetProblem(B)
    -> ChooseReductionType
    -> ConstructTransformationOrOracleAlgorithm
    -> ProveReductionCorrectness
    -> Establish A_REDUCES_TO_B
    -> ApplyKnownComputabilityStatus
    -> InferPermittedConsequences

DEFINE UNDECIDABILITY_PIPELINE :=
    TargetProblem(B)
    -> SelectKnownUndecidableProblem(A)
    -> Construct A_REDUCES_TO_B
    -> VerifyReductionDirection
    -> ApplyUndecidabilityTransfer
    -> OR ConstructDiagonalisationArgument
    -> ReturnUndecidabilityResult

DEFINE COMPUTABILITY_GRAPH := {
    node_types: {
        MachineNode,
        AlgorithmNode,
        FunctionNode,
        LanguageNode,
        ProblemNode,
        ReductionNode,
        OracleNode,
        ComputationNode
    },
    edge_types: {
        COMPUTES,
        DECIDES,
        RECOGNISES,
        ENUMERATES,
        REDUCES_TO,
        SIMULATES,
        HALTS_ON,
        DIVERGES_ON,
        QUERIES
    },
    direction_sensitive_reductions: TRUE
}

DEFINE ONTOLOGY_RELATIONS := {
    ComputabilityTheoryOntology IS_COMPONENT_OF ComputabilityTheory,
    TuringMachine IS_SUBTYPE_OF ComputationModel,
    UniversalTuringMachine SIMULATES TuringMachine,
    ComputableFunction IS_COMPUTABLE_BY ComputationModel,
    TotalComputableFunction IS_SUBTYPE_OF PartialComputableFunction,
    DecidableLanguage IS_SUBTYPE_OF RecognisableLanguage,
    RecognisableLanguage EQUIVALENT_TO RecursivelyEnumerableLanguage,
    ManyOneReduction IS_SUBTYPE_OF Reduction,
    TuringReduction IS_SUBTYPE_OF Reduction,
    Oracle SUPPORTS RelativeComputability,
    HaltingProblem IS_INSTANCE_OF UndecidableProblem,
    RiceTheorem CLASSIFIES NontrivialSemanticMachinePropertiesAsUndecidable,
    ChurchTuringThesis RELATES EffectiveProcedure TO FormalComputability
}

DEFINE SEMANTIC_EQUIVALENCE := {
    "computability theory ontology" <=> ComputabilityTheoryOntology,
    "computability theory" <=> ComputabilityTheory,
    "recursion theory" <=> ComputabilityTheory WHEN historical_context=TRUE,
    "computable function" <=> ComputableFunction,
    "recursive function" <=> ComputableFunction WHEN historical_context=TRUE,
    "Turing-recognisable" <=> RecognisableLanguage,
    "recursively enumerable" <=> RecognisableLanguage,
    "semi-decidable" <=> RecognisableLanguage,
    "Turing-decidable" <=> DecidableLanguage,
    "halting problem" <=> HaltingProblem
}

DEFINE AI_CONSUMPTION := {
    purpose: "machine-readable ontology for effective computation, computability classes, reductions and undecidability",
    preserve_computation_model_identity: TRUE,
    preserve_machine_identity: TRUE,
    preserve_input_output_identity: TRUE,
    preserve_configuration_order: TRUE,
    preserve_halting_status: TRUE,
    distinguish_total_from_partial: TRUE,
    distinguish_decidable_from_recognisable: TRUE,
    distinguish_computability_from_complexity: TRUE,
    preserve_reduction_direction: TRUE,
    preserve_reduction_type: TRUE,
    validate_reduction_correctness: TRUE,
    support_machine_simulation: TRUE,
    support_computability_classification: TRUE,
    support_undecidability_reasoning: TRUE,
    support_relative_computability: TRUE,
    reasoning_mode: "symbolic + algorithmic + reduction-aware + meta-computational"
}

DEFINE CONFIDENCE := {
    ontology_identity: 1.00,
    computation_model_mapping: 0.99,
    Turing_machine_mapping: 0.99,
    function_classification: 0.99,
    language_classification: 0.99,
    reduction_direction_mapping: 1.00,
    halting_problem_mapping: 1.00,
    arbitrary_program_halting_analysis: undecidable_in_general
}

DEFINE UPDATE_MODEL := {
    version: "1.0",
    update_policy: "append-compatible",
    immutable_core: {
        effective_computation,
        machine_computation,
        partial_total_distinction,
        decidable_recognisable_distinction,
        reduction_direction,
        halting_problem_undecidability,
        Church_Turing_thesis_status
    },
    extensible_layers: {
        primitive_recursive_functions,
        partial_recursive_functions,
        lambda_calculus,
        register_machines,
        computability_degrees,
        oracle_computation,
        arithmetic_hierarchy,
        recursion_theorem,
        computable_analysis,
        proof_assistant_computability_formalisations
    }
}

DEFINE FLOW_HASH_INPUT :=
    CanonicalURL
    + DOMAIN
    + ENTITY_TYPES
    + RELATION_TYPES
    + RULES
    + COMPUTATION_SCHEMA
    + FUNCTION_CLASSIFICATION
    + LANGUAGE_CLASSIFICATION
    + REDUCTION_SCHEMA
    + CHURCH_TURING_MODEL
    + CRITICAL_DISTINCTIONS
    + COMPUTATION_PIPELINE
    + CLASSIFICATION_PIPELINE
    + REDUCTION_REASONING_PIPELINE
    + UNDECIDABILITY_PIPELINE
    + COMPUTABILITY_GRAPH
    + ONTOLOGY_RELATIONS
    + AI_CONSUMPTION
    + UPDATE_MODEL

FLOW_HASH := HASH(FLOW_HASH_INPUT)

RETURN {
    ontology: ComputabilityTheoryOntology,
    canonical_url: "https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/mathematical-logic-ontologies/computability-theory/computability-theory-ontology.html",
    parent_domain: ComputabilityTheory,
    semantic_domain: MathematicalLogic,
    primary_entity: ComputabilityTheory,
    computation_reasoning_enabled: TRUE,
    classification_reasoning_enabled: TRUE,
    reduction_reasoning_enabled: TRUE,
    undecidability_reasoning_enabled: TRUE,
    relative_computability_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