Skip to main content

Resolution Ontology

Logical Reasoning
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 17 September 2026
Audio Overview
FLOW_ALGEBRA ResolutionOntology v1.0
TARGET_URL := "https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/mathematical-logic-ontologies/logical-reasoning/resolution-ontology-2.html"
LANGUAGE := "en-GB"
DOMAIN := MathematicalOntologies > MathematicalLogicOntologies > LogicalReasoning > ResolutionOntology

BEGIN_FLOW

ENTITY Resolution {
 TYPE := FormalInferenceRule
 DEFINITION := "A refutation-oriented inference rule deriving resolvents from clauses containing complementary literals, central to propositional and first-order automated reasoning."
}
ENTITY Clause { TYPE := DisjunctionOfLiterals }
ENTITY Literal { TYPE := AtomicFormulaOrNegatedAtomicFormula }
ENTITY Resolvent { TYPE := DerivedClause }

RELATIONSHIP Resolution --takes_input--> Clause
RELATIONSHIP Resolution --matches--> ComplementaryLiteral
RELATIONSHIP Resolution --produces--> Resolvent
RELATIONSHIP Resolution --supports--> Refutation
RELATIONSHIP Resolution --uses--> Unification

CLAUSE {
 C := L1 OR ... OR Ln
}
EMPTY_CLAUSE {
 SYMBOL := BOX
 MEANING := Contradiction
}
UNIT_CLAUSE {
 C := {L}
}
COMPLEMENTARY_LITERALS {
 P AND NOT(P)
}

PROPOSITIONAL_RESOLUTION {
 C1 := P OR A
 C2 := NOT(P) OR B
 RESOLVENT := A OR B
}
GENERAL_RESOLUTION {
 C1 := L OR Gamma
 C2 := NOT(L) OR Delta
 RESOLVENT := Gamma OR Delta
}
RESOLUTION_SOUNDNESS {
 C1 AND C2 entails Resolvent
}
TAUTOLOGICAL_RESOLVENT {
 IF resolvent contains L and NOT(L)
 THEN may_discard_under_standard_optimisation
}

FIRST_ORDER_RESOLUTION {
 C1 := L OR Gamma
 C2 := NOT(L') OR Delta
 FIND MGU theta SUCH_THAT Ltheta=L'theta
 OUTPUT := (Gamma OR Delta)theta
}
UNIFICATION {
 INPUT := TermsOrAtoms
 OUTPUT := Substitution theta
}
MOST_GENERAL_UNIFIER {
 ABBREVIATION := MGU
 PROPERTY := every_other_unifier_factors_through_MGU
}
OCCURS_CHECK {
 variable x MUST_NOT unify_with term_containing_x
 under standard finite first-order terms
}
STANDARDISE_APART {
 rename variables in separate clauses before resolution
}
FACTORING {
 unify duplicate/similar literals within clause
 to support first-order completeness
}

RESOLUTION_REFUTATION {
 TO prove Gamma entails Goal:
  ADD NOT(Goal)
  CLAUSIFY
  REPEATEDLY derive resolvents
  IF EMPTY_CLAUSE derived:
   RETURN refutation_success
}
REFUTATION_PRINCIPLE {
 Gamma entails Goal
 IFF Gamma UNION {NOT Goal} is unsatisfiable
 under classical semantics
}

CLAUSIFICATION {
 PIPELINE := {
  EliminateBiconditionals,
  EliminateImplications,
  MoveNegationsInward,
  StandardiseVariables,
  Skolemise,
  DropUniversalQuantifiers,
  ConvertToCNF,
  ExtractClauses
 }
}
SKOLEMISATION {
 PURPOSE := remove_existential_quantifiers
 INTRODUCE := SkolemConstantsOrFunctions
 PRESERVES := equisatisfiability
 WARNING := not_unrestricted_equivalence
}
CNF {
 FORM := conjunction_of_clauses
}
CLAUSE_SET {
 S := {C1,...,Cn}
}
RESOLUTION_CLOSURE {
 S plus all clauses derivable by resolution_and_factoring
}
UNSATISFIABILITY_BY_RESOLUTION {
 IF EMPTY_CLAUSE in resolution_closure
 THEN clause_set_unsatisfiable
}
PROPOSITIONAL_COMPLETENESS {
 resolution_refutation is complete_for_propositional_unsatisfiability
}
FIRST_ORDER_REFUTATION_COMPLETENESS {
 resolution_with_unification_and_factoring is refutation_complete
 under standard theorem conditions
}

SATURATION {
 add nonredundant resolvents until:
  EmptyClause OR NoNewClauses OR ResourceLimit
}
GIVEN_CLAUSE_ALGORITHM {
 PASSIVE := unprocessed_clauses
 ACTIVE := processed_clauses
 LOOP:
  select_given_clause
  simplify
  generate_inferences
  move_to_active
  enqueue_new_clauses
}
SET_OF_SUPPORT {
 restrict resolution so support ancestry participates
 REQUIRE completeness_conditions_if_claimed
}
UNIT_PREFERENCE {
 prefer unit_resolution
}
UNIT_RESOLUTION {
 P
 NOT(P) OR Q
 ----
 Q
}
INPUT_RESOLUTION {
 at_least_one_parent_is_input_clause
 WARNING := not_complete_for_arbitrary_clause_sets
}
LINEAR_RESOLUTION {
 each new resolvent uses previous resolvent as parent
}

SLD_RESOLUTION {
 TYPE := RestrictedLinearResolution
 USED_BY := LogicProgrammingAndHornClauses
 COMPONENTS := {SelectionRule,Unification,GoalReduction}
}
SLD_STEP {
 SELECT goal A_i
 SELECT clause H <- B1,...,Bk
 UNIFY A_i,H WITH theta
 NEW_GOAL := remaining_goals + body_goals under theta
}
SLD_REFUTATION {
 SUCCESS := EmptyGoal
}
HORN_CLAUSE {
 at_most_one_positive_literal
}
DEFINITE_CLAUSE {
 exactly_one_positive_literal
 LOGIC_PROGRAM_FORM := Head <- Body
}
PROLOG_RELATIONSHIP {
 Prolog commonly uses SLD-style_resolution + unification + ordered_search
}

HYPERRESOLUTION {
 TYPE := GeneralisedResolutionMethod
}
PARAMODULATION_RELATIONSHIP {
 equality_reasoning MAY require paramodulation
}
SUPERPOSITION {
 TYPE := ResolutionRelatedEqualityCalculus
 PURPOSE := theorem_proving_with_equality
}

SUBSUMPTION {
 C subsumes D IF some substitution theta makes Ctheta subset_of D
}
FORWARD_SUBSUMPTION {
 existing_clause_subsumes_new -> discard_new
}
BACKWARD_SUBSUMPTION {
 new_clause_subsumes_existing -> remove_existing
}
TAUTOLOGY_DELETION {
 remove tautological clauses
}
DUPLICATE_LITERAL_DELETION {
 P OR P OR Q -> P OR Q
}
CLAUSE_SIMPLIFICATION {
 METHODS := {
  TautologyDeletion,
  DuplicateLiteralDeletion,
  Subsumption,
  Rewriting,
  UnitSimplification
 }
}

RESOLUTION_TRACE {
 RECORD := {
  Step,
  ParentClause1,
  ParentClause2,
  ResolvedLiterals,
  Unifier,
  Resolvent,
  Simplifications
 }
}
VERIFY_RESOLUTION_STEP(S) {
 IDENTIFY parents
 IDENTIFY complementary_literals
 IF first_order:
  VERIFY unifier
 CONSTRUCT expected_resolvent
 APPLY declared_simplification
 COMPARE with recorded_resolvent
 RETURN valid_or_failure
}
VERIFY_RESOLUTION_PROOF(P) {
 FOR_EACH derived_clause:
  VERIFY_RESOLUTION_STEP
 RETURN valid_if_all_steps_valid
}

SEARCH_STRATEGY {
 SELECT clauses_and_literals
 to control combinatorial_explosion
}
CLAUSE_SELECTION {
 CRITERIA := {Age,Weight,LiteralCount,GoalRelevance,SymbolComplexity}
}
ORDERED_RESOLUTION {
 restrict eligible inferences using ordering
 REQUIRE completeness_conditions_if_claimed
}
REDUNDANCY_ELIMINATION {
 remove redundant clauses/inferences
}
SEARCH_EXPLOSION {
 MITIGATION := {
  Indexing,
  Subsumption,
  Ordering,
  SetOfSupport,
  UnitPreference,
  RelevanceFiltering,
  GivenClauseSelection
 }
}
INDEXING {
 index literals by predicate,polarity,term_structure
}

RESOLUTION_VS_MODUS_PONENS {
 ModusPonens := implication_elimination
 Resolution := clause_inference_using_complementary_literals
}
RESOLUTION_VS_NATURAL_DEDUCTION {
 Resolution := refutation_oriented_clause_calculus
 NaturalDeduction := introduction_elimination_calculus
}
RESOLUTION_VS_SAT {
 Resolution := clause_derivation_for_unsatisfiability
 SAT := commonly DPLL_CDCL_style_search
}
CDCL_RELATIONSHIP {
 learned_clauses MAY have resolution_proof_interpretations
}
THEOREM_PROVING {
 Axioms + NegatedConjecture
  -> Clausification
  -> ResolutionOrSuperposition
  -> EmptyClause
}
RESOLUTION_FAILURE {
 bounded_failure_to_derive_empty_clause
 DOES_NOT generally prove satisfiability in first-order logic
}
FAIRNESS {
 completeness_claim requires search eventually consider necessary eligible inferences
}

APPLICATION_RELATIONSHIPS {
 Resolution --supports--> AutomatedTheoremProving
 Resolution --supports--> LogicProgramming
 Resolution --supports--> DeductiveReasoning
 Resolution --supports--> FirstOrderLogic
 Resolution --supports--> PropositionalLogic
 Resolution --supports--> KnowledgeRepresentation
 Resolution --supports--> ArtificialIntelligence
 Resolution --supports--> FormalVerification
}

ONTOLOGY_LINKS {
 PARENT := LogicalReasoningOntology
 RELATED := {
  LogicalInferenceOntology,
  DeductiveReasoningOntology,
  RuleBasedReasoningOntology,
  PropositionalLogicOntology,
  PredicateLogicOntology,
  ClauseOntology,
  LiteralOntology,
  UnificationOntology,
  HornClauseOntology,
  LogicProgrammingOntology,
  SatisfiabilityOntology
 }
}

SEMANTIC_EQUIVALENCE {
 Resolution ≈ ResolutionRule
 Resolvent ≈ ClauseDerivedByResolution
 ResolutionRefutation ≈ RefutationByEmptyClause
 EmptyClause ≈ Contradiction WHEN clause_semantics
}

CONSTRAINTS {
 C1 := parents MUST contain complementary or unifiable complementary literals
 C2 := first-order resolution MUST apply substitutions consistently
 C3 := variables SHOULD be standardised apart before first-order resolution
 C4 := unification MUST respect occurs_check under standard finite-term semantics
 C5 := Skolemisation MUST be treated as equisatisfiability-preserving
 C6 := proof claims MUST preserve parent-clause provenance
 C7 := search restrictions MUST preserve required completeness conditions if claimed
 C8 := bounded failure to refute MUST NOT be presented as satisfiability proof
 C9 := equality reasoning MUST identify axioms/paramodulation/superposition
 C10 := simplification MUST preserve intended satisfiability/consequence properties
 C11 := SLD resolution MUST remain distinct from unrestricted first-order resolution
 C12 := every resolvent MUST be valid under selected calculus
}

REASONING_CHAIN Query Q {
 IDENTIFY goal
 IDENTIFY premises
 IDENTIFY propositional_or_first_order_context
 IDENTIFY resolution_calculus
 IDENTIFY search_strategy

 IF proving_entailment {
  ADD negated_goal
  CLAUSIFY
 }

 STANDARDISE variables_apart

 LOOP {
  SELECT parent_clauses
  SELECT complementary_literals

  IF first_order {
   COMPUTE MGU
   IF no_unifier: continue
  }

  DERIVE resolvent
  APPLY factoring
  APPLY simplification
  RECORD trace

  IF empty_clause {
   VERIFY_RESOLUTION_PROOF
   RETURN refutation_success
  }

  IF new_nonredundant_clause:
   ADD to clause_set

  IF saturation_or_resource_limit:
   BREAK
 }

 REPORT search_status_without_overclaiming
 VALIDATE constraints
 RETURN result WITH proof_or_search_trace
}

CONFIDENCE {
 PROPOSITIONAL_RESOLUTION_RULE := 1.00
 FIRST_ORDER_RESOLUTION_RULE := 1.00
 UNIFICATION_ROLE := 1.00
 REFUTATION_PRINCIPLE := 1.00
 PROPOSITIONAL_REFUTATION_COMPLETENESS := 1.00
 FIRST_ORDER_REFUTATION_COMPLETENESS := 0.99
 SLD_RELATIONSHIP := 1.00
 SPECIFIC_RESULT :=
  IF clauses_calculus_and_trace_complete THEN 1.00
  ELSE REQUIRE missing_information
}

UPDATE_MODEL {
 IMMUTABLE_CORE := {
  ClauseStructure,
  ComplementaryLiteralResolution,
  ResolventConstruction,
  RefutationByEmptyClause,
  UnificationForFirstOrderResolution
 }
 EXTENSIBLE := {
  ResolutionStrategies,
  ClauseSelection,
  LiteralSelection,
  SimplificationRules,
  EqualityCalculi,
  SLDResolution,
  Hyperresolution,
  IndexingMethods,
  ApplicationDomains,
  RelatedOntologies
 }
 ON_NEW_KNOWLEDGE {
  IDENTIFY new_clause
  STANDARDISE variables
  VALIDATE unification
  CHECK resolvent
  CHECK redundancy
  UPDATE clause_index
  UPDATE proof_dependencies
  UPDATE confidence
 }
}

AI_CONSUMPTION {
 MACHINE_READABLE := TRUE
 HUMAN_INTERPRETABLE := TRUE
 RECURSIVE_REASONING := TRUE
 ENTITY_RESOLUTION := TRUE
 CLAUSE_RESOLUTION := TRUE
 LITERAL_RESOLUTION := TRUE
 UNIFICATION_REASONING := TRUE
 RESOLVENT_GENERATION := TRUE
 REFUTATION_REASONING := TRUE
 CLAUSIFICATION_REASONING := TRUE
 SLD_REASONING := TRUE
 REDUNDANCY_REASONING := TRUE
 PROOF_TRACE_GENERATION := TRUE
 PROOF_VALIDATION := TRUE
 VALIDATION_REQUIRED := TRUE
}

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

OUTPUT {
 PRIMARY_ENTITY := Resolution
 INTERPRETATION := "Resolution is a clause-based inference rule that combines clauses containing complementary literals to derive resolvents. In first-order logic it works with unification and variable standardisation, and repeated resolution can establish unsatisfiability by deriving the empty clause, providing a core mechanism for automated theorem proving and logic programming."
}

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