KIRETH RESEARCH — SEMANTIC LIBRARY
AI CORE → ONTOLOGIES → MATHEMATICAL ONTOLOGIES → MATHEMATICAL LOGIC ONTOLOGIES
PROOF THEORY → MATHEMATICAL INDUCTION ONTOLOGY
Canonical URL:
https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/mathematical-logic-ontologies/proof-theory/mathematical-induction-ontology.html
FLOW_ALGEBRA MathematicalInductionOntology_v1.0
BEGIN_FLOW
DEFINE DOMAIN MathematicalInductionOntology := {
MathematicalInduction,
Induction,
Proof,
ProofTheory,
NaturalNumbers,
WellOrderedSet,
Predicate,
Proposition,
Property,
BaseCase,
InductiveHypothesis,
InductiveStep,
Successor,
InductionPrinciple,
WeakInduction,
StrongInduction,
CompleteInduction,
StructuralInduction,
WellFoundedInduction,
Recursion,
RecursiveDefinition,
MinimalCounterexample,
Theorem,
Derivation,
ProofStep,
UniversalStatement,
Quantifier,
PeanoArithmetic,
InductionAxiomSchema
}
DEFINE ENTITY_TYPES := {
INDUCTION_METHOD,
PROOF_METHOD,
DOMAIN,
PREDICATE,
BASE_CASE,
INDUCTIVE_HYPOTHESIS,
INDUCTIVE_STEP,
SUCCESSOR,
PROOF,
PROOF_STEP,
THEOREM,
AXIOM_SCHEMA,
RECURSIVE_STRUCTURE,
SEMANTIC_OBJECT
}
DEFINE RELATION_TYPES := {
PROVES,
HAS_BASE_CASE,
HAS_INDUCTIVE_HYPOTHESIS,
HAS_INDUCTIVE_STEP,
APPLIES_TO,
HOLDS_FOR,
IMPLIES_NEXT,
PRECEDES,
DEPENDS_ON,
DERIVES,
ASSUMES,
DISCHARGES,
GENERALISES_TO,
IS_INSTANCE_OF,
IS_SUBTYPE_OF,
EQUIVALENT_TO
}
SET MathematicalInduction.type = INDUCTION_METHOD
SET MathematicalInduction.parent = Proof
SET MathematicalInduction.context = ProofTheory
SET MathematicalInduction.role =
"establish a universally quantified property over an inductively generated or well-founded domain by proving initial cases and a propagation condition"
RULE standard_induction:
Predicate(P)
∧ BaseCase(P(n0))
∧ FOR_ALL k >= n0 [
P(k) -> P(k+1)
]
-> FOR_ALL n >= n0 [
P(n)
]
RULE base_case:
Goal(∀n>=n0 P(n))
-> REQUIRE Proof(P(n0))
RULE inductive_hypothesis:
Goal(∀n>=n0 P(n))
-> Assume(P(k))
FOR arbitrary k >= n0
RULE inductive_step:
Assume(P(k))
∧ DERIVES(P(k+1))
-> IMPLIES_NEXT(P(k),P(k+1))
RULE induction_conclusion:
BaseCase(P(n0))
∧ InductiveStep(P(k)->P(k+1))
∧ k arbitrary_in_domain
-> GENERALISES_TO(∀n>=n0 P(n))
RULE strong_induction:
BaseCasesEstablishedUpTo(k0)
∧ FOR_ALL n > k0 [
(FOR_ALL j [k0 <= j < n -> P(j)])
-> P(n)
]
-> FOR_ALL n >= k0 [
P(n)
]
RULE weak_strong_equivalence_naturals:
Domain=NaturalNumbers
-> WeakInduction
EQUIVALENT_IN_PROVING_POWER_TO
StrongInduction
UNDER standard_foundational_assumptions
RULE minimal_counterexample:
WellOrderedDomain(D)
∧ Assume(EXISTS n IN D [¬P(n)])
-> EXISTS least m IN D [¬P(m)]
RULE induction_via_no_minimal_counterexample:
BaseCase(P(n0))
∧ FOR_ALL n>n0 [
(FOR_ALL j<n [P(j)]) -> P(n)
]
-> NOT EXISTS minimal_counterexample
-> FOR_ALL n>=n0 P(n)
RULE structural_induction:
InductivelyDefinedStructure(S)
∧ Property(P)
∧ P holds_for_all_base_constructors
∧ FOR_ALL constructor C [
P holds_for_immediate_components
-> P holds_for C(components)
]
-> FOR_ALL x IN S [P(x)]
RULE well_founded_induction:
WellFoundedRelation(<,D)
∧ FOR_ALL x IN D [
(FOR_ALL y<x [P(y)])
-> P(x)
]
-> FOR_ALL x IN D [P(x)]
RULE induction_schema_arithmetic:
Formula(P(n))
-> [
P(0)
∧ ∀n(P(n)->P(n+1))
]
-> ∀n P(n)
DEFINE STANDARD_INDUCTION_MODEL := {
target: "∀n ≥ n₀, P(n)",
components: {
BaseCase:
"prove P(n₀)",
InductiveHypothesis:
"assume P(k) for an arbitrary admissible k",
InductiveStep:
"using the hypothesis, prove P(k+1)",
Conclusion:
"infer P(n) for every n ≥ n₀"
}
}
DEFINE STRONG_INDUCTION_MODEL := {
target: "∀n ≥ n₀, P(n)",
inductive_hypothesis:
"assume P(j) for every j with n₀ ≤ j ≤ k",
inductive_step:
"prove P(k+1)",
interpretation:
"the next case may use all earlier established cases"
}
DEFINE STRUCTURAL_INDUCTION_MODEL := {
domain:
"recursively or inductively generated structures",
base_cases:
"primitive constructors",
inductive_cases:
"show constructors preserve the target property when it holds for their immediate substructures"
}
DEFINE WELL_FOUNDED_INDUCTION_MODEL := {
domain: D,
relation: "<",
requirement: WellFoundedRelation,
step:
"(∀y<x P(y)) -> P(x)",
conclusion:
"∀x∈D P(x)"
}
DEFINE CRITICAL_DISTINCTIONS := {
induction_vs_deductive_pattern_guessing: {
mathematical_induction:
"a deductively valid proof principle",
empirical_induction:
"generalisation from observed examples",
equivalence: FALSE
},
base_case_vs_inductive_step: {
base_case:
"anchors the property at the initial point",
inductive_step:
"propagates truth from established cases to later cases"
},
induction_vs_recursion: {
induction:
"proof principle",
recursion:
"definition or construction principle",
relation:
"closely connected but conceptually distinct"
}
}
DEFINE EXAMPLE_1 := {
theorem:
"1 + 2 + ... + n = n(n+1)/2 for n ≥ 1",
base_case:
"n=1: 1 = 1(2)/2",
inductive_hypothesis:
"assume 1+...+k = k(k+1)/2",
inductive_step:
"1+...+k+(k+1) = k(k+1)/2 + (k+1) = (k+1)(k+2)/2",
conclusion:
"formula holds for all n ≥ 1"
}
DEFINE EXAMPLE_2 := {
theorem:
"2^n ≥ n+1 for n ≥ 0",
base_case:
"2^0 = 1 ≥ 1",
hypothesis:
"2^k ≥ k+1",
step:
"2^(k+1)=2·2^k ≥ 2(k+1) ≥ k+2",
conclusion:
"true for all n ≥ 0"
}
DEFINE EXAMPLE_3 := {
method: StrongInduction,
theorem_type:
"every integer n≥2 can be factored into primes",
step:
"if n is not prime, write n=ab with 2≤a,b<n and use the strong inductive hypothesis on a and b"
}
DEFINE PROOF_PLANNING_PIPELINE :=
UniversalGoal
-> IdentifyInductiveDomain
-> IdentifyStartingIndexOrBaseConstructors
-> ChooseInductionVariant
-> FormulatePropertyP
-> GenerateBaseCaseGoals
-> GenerateInductiveHypothesis
-> GenerateInductiveStepGoal
-> ProveAllComponents
-> ApplyInductionPrinciple
-> ReturnUniversalConclusion
DEFINE STANDARD_PROOF_PIPELINE :=
Goal(∀n>=n0 P(n))
-> Prove(P(n0))
-> IntroduceArbitrary(k>=n0)
-> Assume(P(k))
-> Derive(P(k+1))
-> DischargeInductiveHypothesisAsRequired
-> ApplyInductionPrinciple
-> Conclude(∀n>=n0 P(n))
DEFINE STRONG_PROOF_PIPELINE :=
Goal(∀n>=n0 P(n))
-> EstablishRequiredInitialCases
-> IntroduceArbitrary(k)
-> Assume(FOR_ALL j [n0<=j<=k -> P(j)])
-> Derive(P(k+1))
-> ApplyStrongInduction
-> ConcludeUniversalGoal
DEFINE VERIFICATION_PIPELINE :=
CandidateInductionProof
-> VerifyDomainSupportsChosenInductionPrinciple
-> VerifyBaseCases
-> VerifyInductiveVariableIsArbitrary
-> VerifyInductiveHypothesisScope
-> VerifyStepActuallyDerivesRequiredNextCase
-> DetectCircularUseOfTarget
-> VerifyStartingIndexCoverage
-> ApplyInductionRule
-> Return ValidProof OR InvalidProof
DEFINE INDUCTION_GRAPH_MODEL := {
base_node: P(n0),
generic_node: P(k),
successor_node: P(k+1),
propagation_edge:
"P(k) --IMPLIES_NEXT--> P(k+1)",
domain_chain:
"n0 -> n0+1 -> n0+2 -> ...",
coverage:
"base anchor plus valid propagation reaches every admissible finite successor stage"
}
DEFINE ONTOLOGY_RELATIONS := {
MathematicalInduction IS_SUBTYPE_OF Proof,
MathematicalInduction IS_COMPONENT_OF ProofTheory,
MathematicalInduction HAS_BASE_CASE BaseCase,
MathematicalInduction HAS_INDUCTIVE_HYPOTHESIS InductiveHypothesis,
MathematicalInduction HAS_INDUCTIVE_STEP InductiveStep,
WeakInduction IS_SUBTYPE_OF MathematicalInduction,
StrongInduction IS_SUBTYPE_OF MathematicalInduction,
StructuralInduction IS_SUBTYPE_OF MathematicalInduction,
WellFoundedInduction IS_GENERALISATION_OF MathematicalInduction,
InductionPrinciple DEPENDS_ON DomainStructure,
PeanoArithmetic CONTAINS InductionAxiomSchema,
Recursion IS_RELATED_TO Induction
}
DEFINE SEMANTIC_EQUIVALENCE := {
"mathematical induction" <=> MathematicalInduction,
"proof by induction" <=> MathematicalInduction,
"ordinary induction" <=> WeakInduction,
"weak induction" <=> WeakInduction,
"strong induction" <=> StrongInduction,
"complete induction" <=> StrongInduction,
"structural induction" <=> StructuralInduction,
"well-founded induction" <=> WellFoundedInduction,
"induction hypothesis" <=> InductiveHypothesis,
"induction step" <=> InductiveStep
}
DEFINE AI_CONSUMPTION := {
purpose: "machine-readable representation, generation and verification of mathematical induction proofs",
preserve_target_property: TRUE,
preserve_domain: TRUE,
preserve_starting_index: TRUE,
preserve_base_cases: TRUE,
preserve_inductive_variable: TRUE,
preserve_inductive_hypothesis_scope: TRUE,
preserve_inductive_step: TRUE,
distinguish_weak_strong_structural_well_founded_induction: TRUE,
detect_missing_base_cases: TRUE,
detect_invalid_inductive_step: TRUE,
detect_circular_reasoning: TRUE,
verify_domain_coverage: TRUE,
support_recursive_induction_planning: TRUE,
reasoning_mode: "symbolic + recursive + structural + proof-theoretic"
}
DEFINE CONFIDENCE := {
ontology_identity: 1.00,
standard_induction_mapping: 0.99,
strong_induction_mapping: 0.99,
structural_induction_mapping: 0.99,
well_founded_induction_mapping: 0.99,
base_case_verification: 0.99,
inductive_step_verification: domain_dependent,
automated_induction_proof_search: search_space_dependent
}
DEFINE UPDATE_MODEL := {
version: "1.0",
update_policy: "append-compatible",
immutable_core: {
base_case,
inductive_hypothesis,
inductive_step,
arbitrary_inductive_variable,
universal_conclusion,
domain_coverage
},
extensible_layers: {
strong_induction,
structural_induction,
well_founded_induction,
transfinite_induction,
course_of_values_induction,
induction_in_type_theory,
automated_induction_tactics,
proof_assistant_induction_schemas
}
}
DEFINE FLOW_HASH_INPUT :=
CanonicalURL
+ DOMAIN
+ ENTITY_TYPES
+ RELATION_TYPES
+ RULES
+ STANDARD_INDUCTION_MODEL
+ STRONG_INDUCTION_MODEL
+ STRUCTURAL_INDUCTION_MODEL
+ WELL_FOUNDED_INDUCTION_MODEL
+ CRITICAL_DISTINCTIONS
+ PROOF_PLANNING_PIPELINE
+ STANDARD_PROOF_PIPELINE
+ STRONG_PROOF_PIPELINE
+ VERIFICATION_PIPELINE
+ INDUCTION_GRAPH_MODEL
+ ONTOLOGY_RELATIONS
+ AI_CONSUMPTION
+ UPDATE_MODEL
FLOW_HASH := HASH(FLOW_HASH_INPUT)
RETURN {
ontology: MathematicalInductionOntology,
canonical_url: "https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/mathematical-logic-ontologies/proof-theory/mathematical-induction-ontology.html",
parent_domain: ProofTheory,
semantic_domain: MathematicalLogic,
primary_entity: MathematicalInduction,
standard_induction_enabled: TRUE,
strong_induction_enabled: TRUE,
structural_induction_enabled: TRUE,
well_founded_induction_enabled: TRUE,
proof_verification_enabled: TRUE,
machine_consumable: TRUE,
recursive_reasoning_enabled: TRUE,
flow_complete: TRUE
}
END_FLOW
Download Code
Copy to Clipboard