Skip to main content

Biconditional Ontology

Propositional Logic
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 16 September 2026
Audio Overview
# Biconditional Ontology — Flow Algebra

URL: https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/mathematical-logic-ontologies/propositional-logic/biconditional-ontology.html

FLOW BiconditionalOntology {

  DOMAIN:
    AI Core
    -> Ontologies
    -> Mathematical Ontologies
    -> Mathematical Logic Ontologies
    -> Propositional Logic
    -> Biconditional Ontology

  PURPOSE:
    Represent the biconditional as a machine-interpretable binary logical connective expressing equivalence of truth value between two propositions or formulas under an explicitly declared logical system. In classical propositional logic, A ↔ B is true exactly when A and B have the same truth value and false when their truth values differ. The ontology models biconditional identity, notation, operands, truth function, truth table, necessary-and-sufficient conditions, mutual implication, equivalence, XNOR, proof rules, normal-form transformations, SAT and circuit encodings, natural-language "if and only if" expressions, definitional usage, non-classical variants, ambiguity, versioning and provenance. It prevents biconditional equivalence from being confused with syntactic identity, causal reciprocity, numerical equality, assignment, definition, correlation or approximate similarity.

  ENTITY Biconditional {
    TYPE: BinaryLogicalConnective

    PROPERTIES:
      has_identifier
      has_left_operand
      has_right_operand
      has_symbol
      has_arity
      has_truth_function
      has_precedence
      has_associativity
      belongs_to_logic_system
      may_express_mutual_implication
      may_express_necessary_and_sufficient_condition
      may_have_equivalent_forms
      has_version
      has_provenance
  }

  ENTITY BiconditionalFormula {
    TYPE: CompoundPropositionalFormula

    STRUCTURE:
      left_formula
      IFF
      right_formula
  }

  ENTITY BiconditionalOperand {
    TYPE: Formula
  }

  BICONDITIONAL_IDENTITY_MODEL {
    canonical_identifier:
      IFF

    arity:
      2

    RULE:
      biconditional_identity MUST be distinguished_fromsurface_symbol
  }

  LOGIC_CONTEXT_MODEL {
    default:
      classical_propositional_logic

    truth_domain:
      TRUE
      FALSE

    RULE:
      biconditional_semantics MUST be logic_specific
  }

  SYMBOL_MODEL {
    common:
      ↔
      ⇔
      <->
      IFF
      ≡

    RULE:
      some_symbols_areoverloaded_andmustbecontext_resolved
  }

  ARITY_MODEL {
    biconditional:
      binary

    RULE:
      exactly_two_operands_required
  }

  LEFT_OPERAND_MODEL {
    operand:
      well_formed_formula
  }

  RIGHT_OPERAND_MODEL {
    operand:
      well_formed_formula
  }

  OPERAND_ORDER_MODEL {
    classical:
      symmetric

    RULE:
      source_operand_order SHOULD stillbe preserved
  }

  AST_MODEL {
    node:
      IFF

    children:
      left_operand
      right_operand

    RULE:
      child_count = 2
  }

  PRECEDENCE_MODEL {
    common:
      IFF_lower_thanIMPLIES_OR_AND_NOT

    RULE:
      declared_notation_profile_controlsparse
  }

  ASSOCIATIVITY_MODEL {
    chained:
      A IFF B IFF C

    RULE:
      parser_associativity MUST be explicit_evenifparticularBoolean_equivalences_exist
  }

  PARENTHESIS_MODEL {
    examples:
      (A IFF B) IFF C
      A IFF (B IFF C)

    RULE:
      preserveoriginal_AST
  }

  SCOPE_MODEL {
    biconditional:
      relatesexact_left_andright_operand_subtrees
  }

  CLASSICAL_TRUTH_FUNCTION_MODEL {
    TT -> TRUE
    TF -> FALSE
    FT -> FALSE
    FF -> TRUE
  }

  TRUE_CONDITION_MODEL {
    biconditional:
      TRUE_iffoperands_have_same_truth_value
  }

  FALSE_CONDITION_MODEL {
    biconditional:
      FALSE_iffoperands_have_different_truth_values
  }

  TRUTH_TABLE_MODEL {
    rows:
      A=TRUE B=TRUE -> TRUE
      A=TRUE B=FALSE -> FALSE
      A=FALSE B=TRUE -> FALSE
      A=FALSE B=FALSE -> TRUE
  }

  MUTUAL_IMPLICATION_MODEL {
    A IFF B:
      equivalent_classically_to
      (A -> B) AND (B -> A)
  }

  NECESSARY_SUFFICIENT_MODEL {
    A IFF B:
      A_isnecessary_forB
      A_issufficient_forB
      B_isnecessary_forA
      B_issufficient_forA

    RULE:
      bothdirections_required
  }

  EQUIVALENCE_MODEL {
    A IFF B_valid:
      iff A_andB_arelogically_equivalent

    RULE:
      biconditional_formula_truth_underonevaluation != global_logical_equivalence
  }

  LOCAL_TRUTH_AGREEMENT_MODEL {
    valuation_v:
      v(A)=v(B)

    then:
      v(A_IFF_B)=TRUE

    RULE:
      onevaluation_agreement_doesnotestablishlogical_equivalence
  }

  GLOBAL_EQUIVALENCE_MODEL {
    if:
      forallvaluations v(A)=v(B)

    then:
      A_IFF_B_isvalid
  }

  XNOR_MODEL {
    Boolean:
      biconditional_corresponds_toXNOR

    RULE:
      XNOR_mapping assumesBoolean_truth_encoding
  }

  XOR_NEGATION_MODEL {
    A IFF B:
      equivalent_to
      NOT(A XOR B)
  }

  BICONDITIONAL_NEGATION_MODEL {
    NOT(A IFF B):
      equivalent_to
      A XOR B
  }

  IMPLICATION_EXPANSION_MODEL {
    A IFF B:
      equivalent_to
      (NOT A OR B) AND (NOT B OR A)
  }

  DNF_EXPANSION_MODEL {
    A IFF B:
      equivalent_to
      (A AND B) OR (NOT A AND NOT B)
  }

  CNF_EXPANSION_MODEL {
    A IFF B:
      equivalent_to
      (NOT A OR B) AND (A OR NOT B)
  }

  SYMMETRY_MODEL {
    A IFF B:
      equivalent_to
      B IFF A
  }

  REFLEXIVITY_MODEL {
    A IFF A:
      valid
  }

  TRANSITIVITY_MODEL {
    if:
      A IFF B_valid
      AND B IFF C_valid

    then:
      A IFF C_valid

    RULE:
      applies_to_global_logical_equivalence_relation
  }

  EQUIVALENCE_RELATION_MODEL {
    logical_equivalence:
      reflexive
      symmetric
      transitive
  }

  IDENTITY_TRUE_MODEL {
    A IFF TRUE:
      equivalent_to
      A
  }

  IDENTITY_FALSE_MODEL {
    A IFF FALSE:
      equivalent_to
      NOT A
  }

  COMPLEMENT_MODEL {
    A IFF NOT A:
      contradiction_underclassical_semantics
  }

  DOUBLE_NEGATION_MODEL {
    NOT A IFF NOT B:
      equivalent_to
      A IFF B
  }

  CONTRAPOSITIVE_LINK_MODEL {
    (A -> B) IFF (NOT B -> NOT A):
      valid_classically
  }

  DE_MORGAN_EQUIVALENCE_MODEL {
    NOT(A AND B) IFF (NOT A OR NOT B):
      valid_classically

    NOT(A OR B) IFF (NOT A AND NOT B):
      valid_classically
  }

  BOOLEAN_ALGEBRA_MODEL {
    biconditional:
      equality_ofBoolean_values
      orXNOR

    RULE:
      Boolean_value_equality != generalmathematical_equality_byidentity
  }

  BOOLEAN_POLYNOMIAL_MODEL {
    overGF2_encoding:
      A_IFF_B mayberepresented_as
      1 + A + B
      underappropriateBoolean convention

    RULE:
      algebraic_encoding MUST be declared
  }

  TRUTH_VECTOR_MODEL {
    A_IFF_B:
      pointwise_XNOR_oftruth_vectors

    RULE:
      commonvaluation_order REQUIRED
  }

  SEMANTIC_EQUIVALENCE_TEST_MODEL {
    test:
      A_IFF_B_valid

    equivalent_test:
      A_XOR_B_unsatisfiable
  }

  SAT_EQUIVALENCE_TEST_MODEL {
    formula:
      A XOR B

    if_UNSAT:
      A_andB_logically_equivalent
  }

  COUNTERMODEL_MODEL {
    refutes_equivalence:
      valuation_whereA_andB_have_different_truth_values

    RULE:
      onecountermodel_refutesglobal_equivalence
  }

  VALIDITY_MODEL {
    A_IFF_B:
      valid_iffA_andB_semantically_equivalent
  }

  SATISFIABILITY_MODEL {
    A_IFF_B:
      satisfiable_ifexistsvaluation_whereA_andB_agree
  }

  UNSATISFIABILITY_MODEL {
    A_IFF_B:
      unsatisfiable_ifA_andB_disagree_everywhere

    RULE:
      equivalent_toA_XOR_B_valid_underclassical semantics
  }

  TAUTOLOGY_MODEL {
    biconditional:
      tautology_whenoperands_logically_equivalent
  }

  CONTRADICTION_MODEL {
    biconditional:
      contradiction_whenoperands_arelogical_complements
      underallvaluations
  }

  CONTINGENCY_MODEL {
    biconditional:
      agreement_insomevaluations_anddisagreement_inothers
  }

  MODEL_SET_MODEL {
    Models(A_IFF_B):
      valuations_wherebothTRUE_orbothFALSE
  }

  PROOF_RULE_MODEL {
    biconditional:
      introduction
      elimination

    RULE:
      proof_system MUST be identified
  }

  BICONDITIONAL_INTRODUCTION_MODEL {
    premises:
      A -> B
      B -> A

    conclusion:
      A IFF B
  }

  BICONDITIONAL_ELIMINATION_LEFT_MODEL {
    premises:
      A IFF B
      A

    conclusion:
      B
  }

  BICONDITIONAL_ELIMINATION_RIGHT_MODEL {
    premises:
      A IFF B
      B

    conclusion:
      A
  }

  IFF_TO_IMPLICATIONS_MODEL {
    premise:
      A IFF B

    derive:
      A -> B
      B -> A
  }

  EQUIVALENCE_PROOF_MODEL {
    goal:
      A IFF B

    common_strategy:
      proveA_impliesB
      proveB_impliesA

    RULE:
      bothdirections MUST be validated
  }

  PROOF_BY_TRUTH_TABLE_MODEL {
    goal:
      establish_A_IFF_B_valid

    method:
      compareA_andB_truth_columns

    RULE:
      completevaluation_coverage REQUIRED
  }

  PROOF_BY_TRANSFORMATION_MODEL {
    method:
      transformA_toB_usingknown_equivalences

    result:
      A_IFF_B_valid

    RULE:
      eachtransformation MUST preserveequivalence
  }

  DEFINITIONAL_EQUIVALENCE_MODEL {
    definition:
      new_expression_orconcept_defined_byiff_condition

    RULE:
      definitional_role MUST be distinguished_fromordinarytheorem
  }

  EXPLICIT_DEFINITION_MODEL {
    pattern:
      X iff condition

    RULE:
      natural_language_definition MAY usebiconditional_semantics_butalsointroduceterminology
  }

  DEFINITION_VS_BICONDITIONAL_MODEL {
    definition:
      linguistic_orformal act_ofintroducingmeaning

    biconditional:
      logical_formula

    RULE:
      definition != biconditional_formula_byidentity
  }

  EQUALITY_DISTINCTION_MODEL {
    equality:
      relation_betweenobjects_orvalues

    biconditional:
      connective_betweenpropositions

    RULE:
      A=B != A_IFF_B_withoutBooleanproposition_mapping
  }

  SYNTACTIC_IDENTITY_DISTINCTION_MODEL {
    formulas:
      sameAST

    logical_equivalence:
      same_truth_function

    RULE:
      syntactic_identity != biconditional_validity
  }

  APPROXIMATE_EQUIVALENCE_DISTINCTION_MODEL {
    approximate:
      similar_withintolerance

    RULE:
      approximate_equivalence != logical_biconditional
  }

  CAUSAL_RECIPROCITY_DISTINCTION_MODEL {
    A_causes_B_andB_causes_A:
      causal_relation

    RULE:
      mutual_causation != biconditional
  }

  CORRELATION_DISTINCTION_MODEL {
    A_andB_highlycorrelated:
      statistical_relation

    RULE:
      correlation != biconditional
  }

  PROBABILITY_DISTINCTION_MODEL {
    P(A)=P(B):
      equalprobabilities

    RULE:
      equalprobability != A_IFF_B
  }

  SET_EQUALITY_MAPPING_MODEL {
    characteristic_functions:
      A_IFF_B_valid corresponds_toequalsets_undercommonuniverse

    RULE:
      mapping_requirespropositional_setinterpretation
  }

  CIRCUIT_MODEL {
    biconditional:
      XNOR_gate
  }

  XNOR_GATE_MODEL {
    output_high:
      iffinput_bits_equal

    RULE:
      physical_signal_encoding MUST be declared
  }

  XOR_GATE_NEGATION_MODEL {
    XNOR:
      NOT_XOR
  }

  TSEITIN_ENCODING_MODEL {
    auxiliary:
      z <-> (A IFF B)

    RULE:
      encoding MUST preservemapping_betweenz_andbiconditional
  }

  CNF_TSEITIN_MODEL {
    z_equals_A_IFF_B:
      mayencodewithclauses enforcingz_true_whenA_B_equal_andfalsewhendifferent

    RULE:
      generatedclauses MUST be verified
  }

  SAT_CONSTRAINT_MODEL {
    A IFF B:
      constrainsA_andB_toequaltruth_values
  }

  EQUALITY_CONSTRAINT_MODEL {
    Boolean:
      A=B

    equivalent:
      A IFF B

    RULE:
      onlyunderBoolean_valueinterpretation
  }

  VARIABLE_EQUIVALENCE_MODEL {
    SAT:
      p IFF q

    consequence:
      p_andq_mustsharetruth_value
  }

  VARIABLE_ANTIEQUIVALENCE_MODEL {
    p XOR q:
      p_andq_mustdiffer

    RULE:
      antiequivalence != biconditional
  }

  BDD_MODEL {
    biconditional:
      Boolean_apply_XNOR_orNOT_XOR

    RULE:
      commonvariable_order REQUIRED
  }

  NORMAL_FORM_MODEL {
    eliminate_IFF:
      replacewithimplications_orCNF_DNF_expansion

    RULE:
      transformation MUST preserveclassical_equivalence
  }

  IFF_ELIMINATION_MODEL {
    source:
      A IFF B

    target:
      (A -> B) AND (B -> A)
  }

  CNF_ROLE_MODEL {
    biconditional:
      usuallyeliminatedbeforestandardCNF

    atomic_case:
      (NOT A OR B) AND (A OR NOT B)
  }

  DNF_ROLE_MODEL {
    atomic_case:
      (A AND B) OR (NOT A AND NOT B)
  }

  SIMPLIFICATION_MODEL {
    rules:
      A IFF A -> TRUE
      A IFF TRUE -> A
      A IFF FALSE -> NOT A
      A IFF NOT A -> FALSE

    RULE:
      classical_semantics_assumed
  }

  SUBSTITUTION_MODEL {
    if:
      A_IFF_B_valid

    then:
      A_andB_maybesubstitutable_intruth_functional_contexts

    RULE:
      substitution_context MUST preserveextensionality
  }

  REPLACEMENT_THEOREM_MODEL {
    logically_equivalent_subformulas:
      maybereplaced_insidepropositional_formula_withoutchangingtruth_function

    RULE:
      replacement_requiressemantic_equivalence
  }

  EQUIVALENCE_CLASS_MODEL {
    formulas:
      grouped_bylogical_equivalence

    RULE:
      biconditional_validity_canestablish_sameclass
  }

  CANONICAL_FORM_MODEL {
    formulas:
      equivalentformulas_maymap_tosamecanonical_truth_function_representation

    RULE:
      canonicalisation_method MUST be explicit
  }

  NATURAL_LANGUAGE_BICONDITIONAL_MODEL {
    cues:
      if_and_only_if
      iff
      exactly_when
      just_in_case
      necessary_and_sufficient

    RULE:
      linguistic_mapping MUST verifybothdirections
  }

  IF_AND_ONLY_IF_MODEL {
    phrase:
      A_if_and_only_if_B

    formal:
      A IFF B
  }

  EXACTLY_WHEN_MODEL {
    phrase:
      A_exactly_when_B

    candidate:
      A IFF B
  }

  NECESSARY_AND_SUFFICIENT_LANGUAGE_MODEL {
    phrase:
      A_isnecessary_and_sufficient_forB

    formal:
      A IFF B
  }

  ONLY_IF_AND_IF_MODEL {
    requirements:
      A_only_if_B
      A_if_B

    combined:
      A IFF B
  }

  TWO_CONDITIONAL_MODEL {
    statements:
      ifA_thenB
      ifB_thenA

    combined:
      A IFF B
  }

  NATURAL_LANGUAGE_AMBIGUITY_MODEL {
    possible:
      informal_iff_usedloosely
      omitted_direction
      definitional_use
      temporal_equivalence
      causal_reciprocity

    RULE:
      preserveambiguity_whenbothdirections_notclear
  }

  FORMALISATION_MODEL {
    source:
      natural_language_equivalence_claim

    target:
      candidate_biconditional

    metadata:
      left_claim
      right_claim
      direction_evidence
      confidence

    RULE:
      bothdirections SHOULD be independentlysupported
  }

  FORMALISATION_CONFIDENCE_MODEL {
    confidence:
      support_forbiconditional_mapping

    RULE:
      confidence != truth_orvalidity
  }

  INTUITIONISTIC_BICONDITIONAL_MODEL {
    common_definition:
      (A -> B) AND (B -> A)

    RULE:
      implication_isintuitionistic_notmaterial
  }

  PARACONSISTENT_BICONDITIONAL_MODEL {
    semantics:
      logic_specific

    RULE:
      classical_XNOR_truth_table MUST notbeassumed
  }

  MANY_VALUED_BICONDITIONAL_MODEL {
    truth_domain:
      morethan2values

    operation:
      logic_specific

    RULE:
      equality_oftruthvalues MAY notfullydefinechosenbiconditional
  }

  FUZZY_BICONDITIONAL_MODEL {
    possible:
      combination_ofpaired_fuzzy_implications

    RULE:
      fuzzy_equivalence_operator MUST be identified
  }

  THREE_VALUED
_BICONDITIONAL_MODEL {
    truth_domain:
      threevalues

    RULE:
      truth_function MUST be declared
  }

  MODAL_EQUIVALENCE_MODEL {
    compare:
      A IFF B
      necessarily(A IFF B)

    RULE:
      material_biconditional_atoneworld != necessary_equivalence
  }

  STRICT_EQUIVALENCE_MODEL {
    modal:
      necessarily(A IFF B)

    RULE:
      strict_equivalence != ordinarymaterial_biconditional
  }

  TEMPORAL_EQUIVALENCE_MODEL {
    formulas:
      mayagree_atcurrenttime_oralltimes

    RULE:
      temporal_index_andoperator_scope MUST be preserved
  }

  TYPE_EQUIVALENCE_DISTINCTION_MODEL {
    type_equivalence:
      isomorphism_orotherrelation

    RULE:
      type_equivalence != propositional_biconditional_withoutcorrespondence
  }

  CATEGORY_EQUIVALENCE_DISTINCTION_MODEL {
    categorical_equivalence:
      structural_relation_betweencategories

    RULE:
      notlogical_IFF
  }

  SEMANTIC_SIMILARITY_DISTINCTION_MODEL {
    similarity:
      graded_relatedness

    RULE:
      semantic_similarity != logical_equivalence
  }

  ONTOLOGY_EQUIVALENCE_DISTINCTION_MODEL {
    ontology_entities:
      maybemapped_asEquivalentClass_orSameAs

    RULE:
      ontology_identity/equivalence_semantics != propositional_IFF_bydefault
  }

  RULE_ENGINE_MODEL {
    two_rules:
      A -> B
      B -> A

    RULE:
      operational_rules MAY collectivelycorrespond_tobiconditional_onlyunderdeclaredsemantics
  }

  KNOWLEDGE_GRAPH_MODEL {
    nodes:
      biconditional
      formula
      implication
      equivalence_relation
      truth_value
      proof

    edges:
      HAS_LEFT_OPERAND
      HAS_RIGHT_OPERAND
      EQUIVALENT_TO
      EXPANDS_TO
      PROVED_BY
      COUNTERMODELLED_BY
      IMPLEMENTED_BY

    RULE:
      logical_equivalence_andidentity_edges MUST be distinguished
  }

  ERROR_MODEL {
    possible:
      missing_operand
      wrongarity
      symbol_collision
      scope_error
      one_direction_only
      equality_confusion
      invalid_equivalence_claim

    RULE:
      error SHOULD identifyformula_position_andlogic
  }

  AMBIGUITY_MODEL {
    possible:
      symbol
      scope
      logical_equivalence_vsidentity
      definitional_use
      natural_language_direction
      nonclassical_semantics

    RULE:
      unresolved_ambiguity MUST be preserved
  }

  VALIDATION_MODEL {
    checks:
      biconditional_identifier
      logic_system
      arity
      operands
      AST
      scope
      truth_function
      mutual_implication
      equivalence
      proof_rules
      semantic_context

    RULE:
      validation MUST useexact_logic_version
  }

  EXPLAINABILITY_MODEL {
    output:
      left_operand
      right_operand
      truth_values
      agreement_status
      mutual_implications
      necessary_sufficient_roles
      equivalence_status
      countermodel

    RULE:
      explanation SHOULD distinguishcurrent_truth_agreement_fromglobal_logical_equivalence
  }

  VERSION_MODEL {
    versioned:
      biconditional_semantics
      logic_system
      notation
      proof_rules
      ontology

    RULE:
      historical_results MUST preserveversions
  }

  PROVENANCE_MODEL {
    fields:
      source
      formula
      formalisation
      parser
      logic_system
      transformation
      proof
      version
      agent

    RULE:
      biconditional_record MUST remainprovenance_linked
  }

  INTEROPERABILITY_MODEL {
    exchange:
      canonical_IFF_identifier
      left_operand_AST
      right_operand_AST
      symbol
      truth_function
      equivalence_status
      logic_system
      version
      provenance

    RULE:
      equality_orIFF_symbol_alone_isnotlossless
  }

  RELATIONSHIPS {
    Biconditional -> IS_A -> BinaryLogicalConnective
    Biconditional -> HAS_LEFT_OPERAND -> Formula
    Biconditional -> HAS_RIGHT_OPERAND -> Formula
    Biconditional -> EXPANDS_TO -> TwoMutualImplications
    Biconditional -> HAS_TRUTH_FUNCTION -> ClassicalXNOR
    Biconditional -> MAY_ESTABLISH -> LogicalEquivalence
    Biconditional -> MAY_HAVE -> IntroductionRule
    Biconditional -> MAY_HAVE -> EliminationRule
    Biconditional -> MAY_MAP_TO -> XNORGate
  }

  SEMANTIC_EQUIVALENCE {
    "biconditional" ~= binary_logical_connective_true_whenoperands_haveequaltruthvalues_underclassical_semantics
    "if and only if" ~= mutual_implication_expressingnecessary_and_sufficient_condition
    "logical equivalence" ~= validity_ofbiconditional_betweenformulas

    biconditional != syntactic_identity
    biconditional != numerical_equality
    biconditional != assignment
    biconditional != definition_byidentity
    biconditional != causal_reciprocity
    biconditional != correlation
    biconditional != approximate_similarity
    truth_agreement_underonevaluation != logical_equivalence
    XNOR_encoding != semantic_identity_withoutBoolean_mapping
    semantic_confidence != validity
  }

  CONSTRAINTS {
    canonical_biconditional_identifier_must_be preserved = true
    logic_system_andversion_must_be identified = true
    biconditional_must_haveexactly_two_operands = true
    operand_ASTs_andscope_must_be preserved = true
    classical_biconditional_true_iffoperand_truth_values_equal = true
    mutual_implication_requiresbothdirections = true
    necessary_andsufficient_condition_roles_must_be preserved = true
    current_truth_agreement_andglobal_logical_equivalence_must_be distinguished = true
    biconditional_must_not_be interpreted_assyntactic_identity_equality_causation_orcorrelation = true
    natural_language_IFF_mapping_must_verifybothdirections_orpreserveambiguity = true
    nonclassical_biconditional_must_defineitsown_semantics = true
    provenance_must_be preserved = true
  }

  BICONDITIONAL_RECORD_MODEL {
    RECORD:
      biconditional_identifier
      logic_system_identifier
      logic_version
      notation_profile
      symbol
      left_operand_identifier
      right_operand_identifier
      left_operand_AST
      right_operand_AST
      scope
      truth_function
      truth_vector
      mutual_implication_form
      necessary_sufficient_status
      logical_equivalence_status
      countermodel
      XNOR_mapping
      CNF_form
      DNF_form
      SAT_encoding
      introduction_rule
      elimination_rules
      definitional_status
      natural_language_source
      ambiguity_status
      formalisation_confidence
      version
      provenance

    RULE:
      biconditional_record MUST support_reconstruction_ofoperands_truth_semantics_mutual_implication_equivalence_proof_andprovenance
  }

  REASONING_RULES {
    IF biconditional_expression_received
      THEN identifylogic_andnotation
      resolvecanonical_IFF
      parseleft_andright_operands
      validatearity_andscope

    IF classical_operand_values_available
      THEN returnTRUE_ifvalues_equal
      elseFALSE

    IF logical_equivalence_requested
      THEN testvalidity_ofA_IFF_B
      orUNSAT_ofA_XOR_B
      preservecountermodel_ifdisagreement_found

    IF proof_ofbiconditional_requested
      THEN proveA_to_B
      proveB_to_A
      combineusingIFF_introduction

    IF normal_form_requested
      THEN eliminateIFF_usingmutual_implications_orvalidatedCNF_DNFexpansion

    IF natural_language_iff_received
      THEN identifybothdirectionalclaims
      distinguishdefinition_equivalence_causal_orlooseusage
      preserveambiguity_andconfidence

    IF one_direction_only_established
      THEN do_notclaimbiconditional

    IF nonclassical_logic_selected
      THEN loadlogic_specific_biconditional_orpaired_implication_semantics

    IF semantics_orlogic_version_changes
      THEN preservehistorical_record
      revalidatecurrent_equivalences_proofs_andencodings
  }

  VALIDATION {
    CHECK biconditional_identifier
    CHECK logic_system
    CHECK logic_version
    CHECK symbol
    CHECK arity
    CHECK left_operand
    CHECK right_operand
    CHECK AST
    CHECK scope
    CHECK truth_function
    CHECK truth_vector
    CHECK symmetry
    CHECK reflexivity
    CHECK mutual_implication
    CHECK necessary_sufficient_roles
    CHECK logical_equivalence
    CHECK countermodel
    CHECK XNOR_mapping
    CHECK CNF_form
    CHECK DNF_form
    CHECK SAT_encoding
    CHECK introduction_rule
    CHECK elimination_rules
    CHECK definitional_status
    CHECK natural_language_mapping
    CHECK nonclassical_semantics
    CHECK ambiguity
    CHECK formalisation_confidence
    CHECK version
    CHECK provenance
  }

  CONFIDENCE {
    biconditional_identity_confidence: 1.00
    operand_scope_confidence: 1.00
    classical_truth_function_confidence: 1.00
    mutual_implication_confidence: 1.00
    logical_equivalence_confidence: 1.00
    proof_rule_confidence: 1.00
    natural_language_IFF_confidence: 0.95
    nonclassical_semantics_confidence: 0.98

    RULE:
      confidence decreases when logic, notation, operand scope,
      direction evidence, definitional context, proof system,
      version orprovenance is missing or ambiguous
  }

  UPDATE_MODEL {
    ON new_biconditional:
      assign_orresolve_identifier
      attachlogic_andnotation
      parseoperands
      validateclassical_orlogic_specific_semantics
      preserveprovenance
      compute_FLOW_HASH

    ON equivalence_test:
      preserveoperands
      attachtruth_table_SAT_orproof_method
      storecountermodel_orverification

    ON transformation:
      preserve_source_formula
      applyvalidated_IFF_elimination_ornormalisation
      recordtarget_andsemantic_basis

    ON semantic_revision:
      preserveprevious_biconditional_definition
      registernewversion
      revalidateequivalences_anddependentartifacts
      recompute_FLOW_HASH
  }

  AI_CONSUMPTION {
    canonical_entity: Biconditional
    canonical_role: BinaryLogicalConnective

    interpretation_order:
      identify_logic_system
      identify_IFF_symbol_orlinguisticcue
      resolvecanonical_biconditional_identifier
      parseleft_andright_operand_ASTs
      resolveprecedence_associativity_andscope
      validatebinary_arity
      resolveclassical_orlogic_specific_truth_function
      evaluateoperand_truth_agreement
      expandtomutual_implications_whenrequired
      identifynecessary_andsufficient_condition_roles
      distinguishsinglevaluation_agreement_fromglobal_equivalence
      testlogical_equivalence_whenrequested
      preservecountermodel_ifdisagreement_exists
      identifyXNOR_CNF_DNF_SAT_orcircuit mappings
      resolveintroduction_elimination_andproof_strategy
      distinguishbiconditional_fromidentity_equality_definition_causation_correlation_andapproximation
      resolve_natural_language_IFF_anddirection_evidence
      detectambiguity
      assignsemantic_confidence
      preserveversions_andprovenance
      emit_machine_resolvable_biconditional_structure

    ambiguity_controls:
      distinguish_biconditional_fromsyntactic_identity
      distinguish_biconditional_fromnumerical_equality
      distinguish_biconditional_fromassignment
      distinguish_biconditional_fromdefinition_byidentity
      distinguish_biconditional_fromcausal_reciprocity
      distinguish_biconditional_fromcorrelation
      distinguish_biconditional_fromapproximate_similarity
      distinguish_truth_agreement_underonevaluation_fromlogical_equivalence
      distinguish_XNOR_encoding_fromsemantic_identity_withoutBoolean_mapping
      distinguish_semantic_confidence_fromvalidity
      preserve_logic_operands_AST_scope_truth_function_equivalence_rules_version_andprovenance
  }

  PROVENANCE {
    ontology_scope:
      biconditional_IFF_mutual_implication_logical_equivalence_XNOR_proof_rules_andAI_interpretation

    parent_path:
      AI Core
      -> Ontologies
      -> Mathematical Ontologies
      -> Mathematical Logic Ontologies
      -> Propositional Logic
      -> Biconditional Ontology

    authorship:
      Mark Higgins
      Sky (Recursive AI)

    site:
      https://kirethresearch.org
  }

  FLOW_HASH {
    INPUTS:
      canonical_entity
      ontology_path
      biconditional_identity_model
      logic_context_model
      symbol_model
      arity_model
      left_operand_model
      right_operand_model
      operand_order_model
      AST_model
      precedence_model
      associativity_model
      parenthesis_model
      scope_model
      classical_truth_function_model
      true_condition_model
      false_condition_model
      truth_table_model
      mutual_implication_model
      necessary_sufficient_model
      equivalence_model
      local_truth_agreement_model
      global_equivalence_model
      XNOR_model
      XOR_negation_model
      biconditional_negation_model
      implication_expansion_model
      DNF_expansion_model
      CNF_expansion_model
      symmetry_model
      reflexivity_model
      transitivity_model
      equivalence_relation_model
      identity_TRUE_model
      identity_FALSE_model
      complement_model
      double_negation_model
      contrapositive_link_model
      De_Morgan_equivalence_model
      Boolean_algebra_model
      Boolean_polynomial_model
      truth_vector_model
      semantic_equivalence_test_model
      SAT_equivalence_test_model
      countermodel_model
      validity_model
      satisfiability_model
      unsatisfiability_model
      tautology_model
      contradiction_model
      contingency_model
      model_set_model
      proof_rule_model
      biconditional_introduction_model
      biconditional_elimination_left_model
      biconditional_elimination_right_model
      IFF_to_implications_model
      equivalence_proof_model
      proof_by_truth_table_model
      proof_by_transformation_model
      definitional_equivalence_model
      explicit_definition_model
      definition_vs_biconditional_model
      equality_distinction_model
      syntactic_identity_distinction_model
      approximate_equivalence_distinction_model
      causal_reciprocity_distinction_model
      correlation_distinction_model
      probability_distinction_model
      set_equality_mapping_model
      circuit_model
      XNOR_gate_model
      XOR_gate_negation_model
      Tseitin_encoding_model
      CNF_Tseitin_model
      SAT_constraint_model
      equality_constraint_model
      variable_equivalence_model
      variable_antiequivalence_model
      BDD_model
      normal_form_model
      IFF_elimination_model
      CNF_role_model
      DNF_role_model
      simplification_model
      substitution_model
      replacement_theorem_model
      equivalence_class_model
      canonical_form_model
      natural_language_biconditional_model
      if_and_only_if_model
      exactly_when_model
      necessary_and_sufficient_language_model
      only_if_and_if_model
      two_conditional_model
      natural_language_ambiguity_model
      formalisation_model
      formalisation_confidence_model
      intuitionistic_biconditional_model
      paraconsistent_biconditional_model
      many_valued_biconditional_model
      fuzzy_biconditional_model
      three_valued_biconditional_model
      modal_equivalence_model
      strict_equivalence_model
      temporal_equivalence_model
      type_equivalence_distinction_model
      category_equivalence_distinction_model
      semantic_similarity_distinction_model
      ontology_equivalence_distinction_model
      rule_engine_model
      knowledge_graph_model
      error_model
      ambiguity_model
      validation_model
      explainability_model
      version_model
      provenance_model
      interoperability_model
      relationships
      semantic_equivalence
      constraints
      biconditional_record_model
      reasoning_rules
      validation
      confidence_model
      update_model
      AI_consumption_model

    PURPOSE:
      deterministic_semantic_integrity_identifier

    RECOMPUTE_WHEN:
      ontology_definition_changes
      biconditional_identity_logic_system_orsymbol_mapping_changes
      operand_scope_precedence_associativity_orAST_changes
      classical_truth_function_ortruth_table_changes
      mutual_implication_necessary_sufficient_orequivalence_semantics_change
      XNOR_CNF_DNF_SAT_Tseitin_BDD_orcircuit_mapping_changes
      proof_rule_definition_orreplacement_semantics_change
      natural_language_IFF_formalisation_orambiguity changes
      nonclassical_intuitionistic_paraconsistent_manyvalued_fuzzy_orstrict_equivalence_changes
      biconditional_record_changes
      constraint_model_changes
      reasoning_rule_changes
      version_orprovenance_changes
  }

}

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