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
Download Code
Copy to Clipboard