Skip to main content

Logical Variable Ontology

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

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

FLOW LogicalVariableOntology {

  DOMAIN:
    AI Core
    -> Ontologies
    -> Mathematical Ontologies
    -> Mathematical Logic Ontologies
    -> Propositional Logic
    -> Logical Variable Ontology

  PURPOSE:
    Represent a logical variable as a machine-interpretable symbolic entity whose semantic role depends on the formal language and logic in which it occurs. Within propositional logic, a logical variable normally denotes an atomic proposition capable of receiving a truth value under a valuation. Across broader logical systems, variables may range over individuals, truth values, formulas, predicates, functions, worlds or typed domains. This ontology defines variable identity, symbol, scope, assignment, valuation, occurrence, substitution, dependency, binding distinctions, truth-state interpretation, Boolean representation, SAT usage, provenance and AI reasoning constraints while preventing propositional variables from being confused with predicate variables, bound first-order variables, programming variables, unknown numerical quantities or natural-language placeholders.

  ENTITY LogicalVariable {
    TYPE: FormalSymbolicVariable

    PROPERTIES:
      has_identifier
      has_symbol
      belongs_to_language
      has_variable_type
      has_scope
      may_have_assignment
      may_have_truth_value
      may_occur_in_formula
      may_be_free
      may_be_bound_inextended_logics
      has_version
      has_provenance
  }

  ENTITY PropositionalVariable {
    TYPE: LogicalVariable
    ROLE: AtomicPropositionSymbol

    SEMANTIC_DOMAIN:
      TRUE
      FALSE

    RULE:
      propositional_variable_isatomic_atpropositional_level
  }

  ENTITY VariableOccurrence {
    TYPE: SyntacticOccurrence

    COMPONENTS:
      variable_identifier
      formula_identifier
      position
      polarity
      scope
  }

  ENTITY VariableAssignment {
    TYPE: SemanticAssignment

    COMPONENTS:
      variable_identifier
      assigned_value
      assignment_context
  }

  VARIABLE_IDENTITY_MODEL {
    fields:
      variable_identifier
      canonical_symbol
      language_identifier
      variable_type
      version

    RULE:
      variable_identity != glyph_identity
  }

  SYMBOL_MODEL {
    examples:
      p
      q
      r
      P
      Q
      x
      y

    RULE:
      symbol_meaning MUST be resolved_fromlanguage_andvariable_type
  }

  CANONICAL_IDENTIFIER_MODEL {
    variable:
      hasmachine_stable_identifier

    display_symbol:
      may_change_orhavealiases

    RULE:
      AI_reasoning SHOULD usecanonical_identifier
  }

  GLYPH_ALIAS_MODEL {
    variable:
      may_have multiple_surface_labels

    RULE:
      alias_mapping MUST preservevariable_identity
  }

  LANGUAGE_CONTEXT_MODEL {
    logical_variable:
      belongs_toformal_language

    RULE:
      same_symbol MAY representdifferent_variables_indifferent_languages
  }

  VARIABLE_TYPE_MODEL {
    possible:
      propositional_variable
      individual_variable
      predicate_variable
      function_variable
      formula_metavariable
      type_variable
      world_variable

    RULE:
      variable_type MUST be explicit_whenmultiple_semantic_domains_possible
  }

  PROPOSITIONAL_VARIABLE_MODEL {
    variable:
      represents_atomic_proposition

    truth_domain:
      {TRUE,FALSE}

    RULE:
      no_quantifier_binding_instandard_propositional_logic
  }

  ATOMICITY_MODEL {
    proposition_variable:
      treated_asindivisible_formula

    RULE:
      internal_semantic_content_isopaque_topropositional_calculus
  }

  ATOMIC_FORMULA_MODEL {
    propositional_variable:
      iswell_formed_formula

    RULE:
      atom_requires_noarguments
  }

  TRUTH_ASSIGNMENT_MODEL {
    valuation:
      maps_variable_toTRUE_orFALSE

    RULE:
      assignment_isrelative_tovaluation
  }

  VALUATION_MODEL {
    v:
      PropositionalVariable -> {TRUE,FALSE}

    RULE:
      complete_valuation_assigns_everyrelevant_variable
  }

  COMPLETE_ASSIGNMENT_MODEL {
    formula_variables:
      allassigned

    RULE:
      formula_truth_canthenbe deterministicallyevaluated
  }

  PARTIAL_ASSIGNMENT_MODEL {
    variables:
      subset_assigned

    RULE:
      unresolved_variables MAY leaveformula_value_undetermined
  }

  ASSIGNMENT_CONTEXT_MODEL {
    fields:
      valuation_identifier
      formula_identifier
      solver_state
      branch_identifier

    RULE:
      assignment MUST not_be interpreted_globally_withoutcontext
  }

  TRUE_ASSIGNMENT_MODEL {
    variable:
      assigned_TRUE

    RULE:
      assignment != assertion_ofreal_world_truth_withoutinterpretation
  }

  FALSE_ASSIGNMENT_MODEL {
    variable:
      assigned_FALSE

    RULE:
      FALSE_assignment_issemantic_value_withinvaluation
  }

  UNASSIGNED_MODEL {
    variable:
      no_current_truth_assignment

    RULE:
      unassigned != FALSE
  }

  OCCURRENCE_MODEL {
    variable:
      may_occur_zero_one_or manytimes_informula

    RULE:
      occurrences_sharevariable_identity_unlessshadowing_orrenaming_context_saysotherwise
  }

  OCCURRENCE_POSITION_MODEL {
    position:
      path_withinAST_or token_offset

    RULE:
      structural_position SHOULD be preferred_forreasoning
  }

  POSITIVE_OCCURRENCE_MODEL {
    occurrence:
      positive_underdeclared_polarity_definition

    RULE:
      polarity_requires_recursive_formula_context
  }

  NEGATIVE_OCCURRENCE_MODEL {
    occurrence:
      negative_underdeclared_polarity_definition

    RULE:
      negated_literal_iscommon_butnotonlycontext_fornegative_polarity_inextendedanalysis
  }

  POLARITY_MODEL {
    possible:
      positive
      negative
      mixed

    RULE:
      formula_level_polarity MUST be computed_structurally
  }

  LITERAL_MODEL {
    positive_literal:
      p

    negative_literal:
      NOT p

    RULE:
      literal != variable
  }

  COMPLEMENTARY_LITERAL_MODEL {
    pair:
      p
      NOT p

    RULE:
      complementary_literals_share_variable_identifier
  }

  VARIABLE_SET_MODEL {
    Vars(phi):
      set_ofpropositional_variables_occurring_inphi

    RULE:
      duplicates_removed_atset_level
  }

  SUPPORT_MODEL {
    formula:
      semantically_depends_on subset_ofvariables

    RULE:
      syntactic_occurrence_doesnotalways implysemantic_dependency
  }

  ESSENTIAL_VARIABLE_MODEL {
    variable:
      changing_itsvalue_canchange_formula_output_foratleastone_assignment_ofothers

    RULE:
      essentiality_issemantic_property
  }

  INESSENTIAL_VARIABLE_MODEL {
    variable:
      syntactically_mayoccur_butdoesnotaffectBoolean_function

    RULE:
      inessential != absent
  }

  BOOLEAN_DOMAIN_MODEL {
    encoding:
      TRUE = 1
      FALSE = 0

    RULE:
      numeric_encoding_isrepresentational
  }

  BOOLEAN_VARIABLE_MODEL {
    variable:
      ranges_over{0,1}

    RULE:
      Boolean_variable_corresponds_topropositional_variable_underdeclared_encoding
  }

  LOGICAL_VS_BOOLEAN_VARIABLE_MODEL {
    logical:
      truth_semantics

    Boolean:
      algebraic_orcomputational_encoding

    RULE:
      mapping MUST be explicit
  }

  LOGICAL_VS_PROGRAMMING_VARIABLE_MODEL {
    logical_variable:
      formal_symbol_inlogic

    programming_variable:
      storage_name_orbinding_inprogram

    RULE:
      same_identifier_doesnot implysame_semantics
  }

  LOGICAL_VS_ALGEBRAIC_VARIABLE_MODEL {
    logical_variable:
      ranges_overlogical_semantic_domain

    algebraic_variable:
      typically_ranges_overnumbers_oralgebraic_objects

    RULE:
      variable_domain MUST be resolved
  }

  LOGICAL_VS_RANDOM_VARIABLE_MODEL {
    logical_variable:
      truth_orlogic_domain

    random_variable:
      measurable_function_fromsample_space_to values

    RULE:
      random_variable != logical_variable
  }

  LOGICAL_VS_METAVARIABLE_MODEL {
    object_variable:
      belongs_toformal_language

    metavariable:
      belongs_tometalanguage_andranges_oversyntactic_objects

    RULE:
      levels MUST be distinguished
  }

  FORMULA_METAVARIABLE_MODEL {
    examples:
      A
      B
      phi
      psi

    role:
      placeholder_forformula_inrule_schema

    RULE:
      formula_metavariable != propositional_atom_necessarily
  }

  VARIABLE_NAMING_MODEL {
    conventions:
      lowercase_atoms
      indexed_atoms
      descriptive_identifiers

    RULE:
      naming_convention_doesnotdetermine_semantics
  }

  INDEXED_VARIABLE_MODEL {
    form:
      p_i

    RULE:
      index_ispart_ofidentifier_whenusedtodistinguishvariables
  }

  DESCRIPTIVE_VARIABLE_MODEL {
    examples:
      raining
      door_open
      alarm_active

    RULE:
      descriptive_name SHOULD map_tocanonical_atomic_claim
  }

  VARIABLE_DECLARATION_MODEL {
    declaration:
      introduces_variable_identifier_andtype

    RULE:
      undeclared_variable MAY requireimplicit_declaration_policy_orerror
  }

  VARIABLE_SCOPE_MODEL {
    propositional_logic:
      generally_formula_orproblem_context

    RULE:
      scope != quantifier_binding_instandard_propositional_logic
  }

  GLOBAL_SCOPE_MODEL {
    variable:
      identifier_shared_acrossdeclared_formula_collection

    RULE:
      global_scope MUST be explicit
  }

  LOCAL_SCOPE_MODEL {
    variable:
      identifier_valid_withinspecific_formula_solver_orproof_context

    RULE:
      local_identifiers MUST not_be merged_withoutmapping
  }

  FREE_VARIABLE_DISTINCTION_MODEL {
    propositional_variable:
      notbound_byquantifier_instandard_propositional_logic

    RULE:
      terminology_free_variable_isusually_morecentral_inpredicate_logic
  }

  BOUND_VARIABLE_DISTINCTION_MODEL {
    propositional_logic:
      noordinary_quantifier_binding

    RULE:
      bound_variable_semantics SHOULD route_topredicate_orhigher_order_logic_whenencountered
  }

  RENAMING_MODEL {
    mapping:
      variable_identifier_A -> fresh_identifier_B

    RULE:
      consistent_renaming_preserves_formula_structure_andtruth_function_uptovariable_relabeling
  }

  ALPHA_RENAMING_DISTINCTION_MODEL {
    propositional:
      atom_renaming_isnotbound_variable_alpha_equivalence

    RULE:
      terminology MUST be distinguished
  }

  FRESH_VARIABLE_MODEL {
    variable:
      doesnotoccur_inrelevant_formula_orcontext

    RULE:
      freshness_scope MUST be declared
  }

  AUXILIARY_VARIABLE_MODEL {
    variable:
      introduced_fortransformation_orencoding

    examples:
      Tseitin_variable
      solver_internal_variable

    RULE:
      auxiliary_variable MUST be distinguished_fromoriginal_atom
  }

  TSEITIN_VARIABLE_MODEL {
    variable:
      represents_subformula

    RULE:
      mapping_to represented_subformula MUST be preserved
  }

  SKOLEM_VARIABLE_DISTINCTION_MODEL {
    propositional_logic:
      Skolemisation_notapplicable_inbasic_propositional_logic

    RULE:
      Skolem_symbol SHOULD route_tofirst_order_logic
  }

  SUBSTITUTION_MODEL {
    propositional_substitution:
      variable -> formula

    output:
      formula_withconsistent_replacement

    RULE:
      substitution_definition MUST identifywhetheratoms_maymap_toformulas_oronlytruth_values
  }

  UNIFORM_SUBSTITUTION_MODEL {
    variable:
      replaced_by sameformula_ateveryoccurrence

    RULE:
      uniformity MUST be preserved
  }

  TRUTH_SUBSTITUTION_MODEL {
    variable:
      replaced_byTRUE_orFALSE

    RULE:
      equivalent_tofixingvariable_assignment_forformula_simplification
  }

  FORMULA_RESTRICTION_MODEL {
    phi|p=TRUE:
      formula_simplified_underassignment

    phi|p=FALSE:
      alternate_restriction

    RULE:
      restriction_preserves_remaining_variable_semantics
  }

  SHANNON_EXPANSION_MODEL {
    formula:
      phi

    variable:
      p

    expansion:
      (p AND phi[p:=TRUE])
      OR
      (NOT p AND phi[p:=FALSE])

    RULE:
      classical_Boolean_semantics_assumed
  }

  COFACTOR_MODEL {
    positive_cofactor:
      phi[p:=TRUE]

    negative_cofactor:
      phi[p:=FALSE]
  }

  VARIABLE_ELIMINATION_MODEL {
    purpose:
      remove_variable_fromrepresentation_orreasoning_problem

    possible:
      resolution
      existential_Boolean_quantification
      substitution

    RULE:
      semantic_effect MUST be explicit
  }

  BOOLEAN_EXISTENTIAL_QUANTIFICATION_MODEL {
    exists p phi:
      phi[p:=FALSE] OR phi[p:=TRUE]

    RULE:
      this_isBoolean_function_operation_notordinary_standard_propositional_syntax_unlessextended
  }

  BOOLEAN_UNIVERSAL_QUANTIFICATION_MODEL {
    forall p phi:
      phi[p:=FALSE] AND phi[p:=TRUE]

    RULE:
      extended_Boolean_operation MUST be distinguished_fromfirst_order_quantification
  }

  DEPENDENCY_MODEL {
    formula:
      depends_onvariables

    RULE:
      dependency_can_be syntactic_orsemantic_andmust_be typed
  }

  INFLUENCE_MODEL {
    variable:
      degree_orfrequency_withwhichflippingvalue_changesformula_output_underchosenmeasure

    RULE:
      influence_measure_requires_distribution_orcounting_definition
  }

  SENSITIVITY_MODEL {
    Boolean_function:
      number_ofvariables_whoseflip_changesoutput_atassignment

    RULE:
      sensitivity_isassignment_relative
  }

  SAT_VARIABLE_MODEL {
    variable:
      Boolean decision variable_inSAT_problem

    RULE:
      SAT_identifier MUST map_tological_atom_orauxiliary_variable
  }

  SAT_ASSIGNMENT_MODEL {
    assignment:
      variable -> TRUE_orFALSE

    RULE:
      satisfying_assignment_mustcovervariables_required_bysolver_representation
  }

  DECISION_VARIABLE_MODEL {
    SAT_solver:
      variable_chosen_forbranching

    RULE:
      decision_status_isalgorithmic_notsemantic_property
  }

  IMPLIED_VARIABLE_MODEL {
    SAT_solver:
      assignment_forced_bypropagation

    RULE:
      implication_reason SHOULD be preserved
  }

  UNIT_PROPAGATION_MODEL {
    unit_clause:
      forces_literal

    variable:
      receives_implied_assignment

    RULE:
      conflict_ifbothpolarities_forced
  }

  PURE_VARIABLE_MODEL {
    variable:
      occurs_onlyonepolarity_inCNF

    RULE:
      pure_literal_elimination_canassign_satisfying_polarity
  }

  BRANCHING_VARIABLE_MODEL {
    solver:
      selects_unassigned_variable

    RULE:
      branching_heuristic != logical_inference
  }

  VARIABLE_ACTIVITY_MODEL {
    CDCL:
      heuristic_score_forbranching

    RULE:
      activity != semantic_importance
  }

  PHASE_MODEL {
    solver:
      preferred_truth_value_forbranch

    RULE:
      phase_preference != known_truth
  }

  CONFLICT_VARIABLE_MODEL {
    variable:
      participates_inconflict_analysis

    RULE:
      conflict_role_issearch_state_specific
  }

  LEARNED_CLAUSE_DEPENDENCY_MODEL {
    learned_clause:
      depends_on assignments_andclauses

    RULE:
      derivation_provenance SHOULD be retained
  }

  TWO_SAT_VARIABLE_MODEL {
    variable:
      represented_bytwo_literal_nodes_p_andNOT_p

    RULE:
      nodes_share_sameunderlying_variable
  }

  IMPLICATION_GRAPH_MODEL {
    nodes:
      literals

    RULE:
      literal_node != variable_entity
  }

  BDD_VARIABLE_MODEL {
    BDD_node:
      tests_variable

    RULE:
      variable_order_materially_affectsBDD_structure
  }

  VARIABLE_ORDER_MODEL {
    sequence:
      p_1,...,p_n

    RULE:
      order_isrepresentation_parameter_notlogical_truth_property
  }

  ROBDD_MODEL {
    canonical:
      onlyforfixed_variable_order

    RULE:
      variable_order MUST be preserved_withartifact
  }

  CIRCUIT_INPUT_MODEL {
    input_wire:
      maycorrespond_toBoolean_variable

    RULE:
      physical_signal != logical_variable
  }

  DIGITAL_SIGNAL_MAPPING_MODEL {
    mapping:
      low_high -> FALSE_TRUE
      underdeclared convention

    RULE:
      voltage_encoding MUST not_be conflated_withabstract_truth
  }

  TRUTH_TABLE_COLUMN_MODEL {
    variable:
      column_ofassigned_truth_values

    RULE:
      row_order MUST be preserved
  }

  VARIABLE_COUNT_MODEL {
    n:
      number_ofdistinct_variables_informula

    RULE:
      truth_table_rows = 2^n_forclassical_complete enumeration
  }

  OCCURRENCE_COUNT_MODEL {
    variable:
      number_ofsyntactic_occurrences

    RULE:
      occurrence_count != semantic_influence
  }

  FORMULA_COMPLEXITY_LINK_MODEL {
    metrics:
      distinct_variable_count
      occurrence_count
      variable_interaction

    RULE:
      complexity_measure MUST be identified
  }

  VARIABLE_INTERACTION_MODEL {
    variables:
      cooccur_withinclauses_subformulas_orconstraints

    RULE:
      interaction_graph_definition MUST be explicit
  }

  PRIMAL_GRAPH_MODEL {
    SAT_CNF:
      vertices = variables
      edge_ifvariables_share_clause

    RULE:
      graph_depends_onCNF_representation
  }

  INCIDENCE_GRAPH_MODEL {
    bipartite:
      variable_nodes
      clause_nodes

    edge:
      variable_occurs_inclause

    RULE:
      polarity MAY be stored_onedge
  }

  HYPERGRAPH_MODEL {
    clauses:
      hyperedges_overvariables

    RULE:
      representation_choice MUST be declared
  }

  MONOTONE_VARIABLE_MODEL {
    formula:
      variable_occurs_withsingle_semantic_polarity_underdeclared representation

    RULE:
      syntactic_monotonicity_andsemantic_monotonicity MUST be distinguished
  }

  MONOTONE_FORMULA_MODEL {
    formula:
      usesvariables_withoutnegation_understandard_positive_form

    RULE:
      representation-dependent_definition SHOULD be explicit
  }

  SYMMETRIC_VARIABLE_MODEL {
    variables:
      interchangeable_withoutchangingBoolean_function

    RULE:
      symmetry_requires_semantic_orstructural_mapping
  }

  VARIABLE_SYMMETRY_MODEL {
    permutation:
      mapsvariables_whilepreservingformula_function

    RULE:
      symmetry != mere_equal_occurrence_count
  }

  CANONICALISATION_MODEL {
    variables:
      optionally_renamed_to canonical_order

    RULE:
      original_identifier_mapping MUST be preserved
  }

  VARIABLE_HASH_MODEL {
    input:
      canonical_identifier
      language
      type
      version

    RULE:
      hash MUST notdepend_onsurface_alias_only
  }

  NATURAL_LANGUAGE_ATOM_MODEL {
    source:
      human_readable_atomic_claim

    target:
      propositional_variable

    RULE:
      mapping_isinterpretive_andmustretain_source
  }

  ATOM_LABEL_MODEL {
    variable:
      may_havelabel_describingproposition

    RULE:
      label != formal_identifier
  }

  FORMALISATION_MODEL {
    natural_language_claim:
      mapped_toatomic_variable

    metadata:
      source_span
      interpretation
      confidence

    RULE:
      atomisation_decision MUST be auditable
  }

  COREFERENCE_MODEL {
    multiple_phrases:
      mayrefer_tosameatomic_claim

    RULE:
      merge_onlywithsemantic_basis
  }

  DISTINCTNESS_MODEL {
    similar_phrases:
      mayrepresentdifferent_atoms

    RULE:
      lexical_similarity != variable_identity
  }

  NEGATION_MAPPING_MODEL {
    source:
      "not P"

    preferred_form:
      NOT p
      rather_thannew_atom_q
      whensemantic_negation_isclear

    RULE:
      atomisation SHOULD preservelogical_structure
  }

  COMPOUND_CLAIM_MODEL {
    source:
      containsAND_OR_IF_orotherlogicalstructure

    RULE:
      compound_claim SHOULD not_be collapsed_intoatom_whenstructure_isrelevant
  }

  AMBIGUITY_MODEL {
    possible:
      symbol_collision
      variable_type_unknown
      atomisation_uncertain
      scope_unknown
      assignment_context_missing

    RULE:
      ambiguity MUST be preserved_untilresolved
  }

  SEMANTIC_CONFIDENCE_MODEL {
    confidence:
      support_forvariable_identity_type_orinterpretation

    RULE:
      semantic_confidence != truth_assignment
  }

  PROVENANCE_MODEL {
    fields:
      source
      variable_declaration
      atom_interpretation
      transformation
      solver
      version
      agent

    RULE:
      variable_record MUST remain_provenance_linked
  }

  VERSION_MODEL {
    versioned:
      variable_identifier
      language
      atom_mapping
      solver_encoding
      ontology

    RULE:
      historical_assignments MUST preserveversion_context
  }

  VALIDATION_MODEL {
    checks:
      identifier
      symbol
      language
      variable_type
      occurrence
      assignment
      scope
      polarity
      substitution
      solver_mapping
      provenance

    RULE:
      validation MUST useformal_context
  }

  INTEROPERABILITY_MODEL {
    exchange:
      canonical_variable_identifier
      display_symbol
      language_identifier
      variable_type
      atom_interpretation
      assignments
      occurrences
      solver_identifier_mapping

    RULE:
      symbol_alone_isnotlossless
  }

  KNOWLEDGE_GRAPH_MODEL {
    nodes:
      logical_variable
      variable_occurrence
      formula
      valuation
      literal
      clause
      SAT_assignment

    edges:
      OCCURS_IN
      ASSIGNED_BY
      HAS_VALUE
      NEGATED_AS
      DEPENDS_ON
      REPRESENTS
      MAPS_TO

    RULE:
      variable_literal_andoccurrence_nodes MUST be distinguished
  }

  RELATIONSHIPS {
    LogicalVariable -> BELONGS_TO -> LogicalLanguage
    PropositionalVariable -> IS_A -> LogicalVariable
    PropositionalVariable -> OCCURS_IN -> PropositionalFormula
    VariableOccurrence -> REFERS_TO -> LogicalVariable
    Valuation -> ASSIGNS -> LogicalVariable
    Literal -> REFERS_TO -> PropositionalVariable
    TseitinVariable -> REPRESENTS -> Subformula
    SATVariable -> MAPS_TO -> PropositionalVariableOrAuxiliaryVariable
  }

  SEMANTIC_EQUIVALENCE {
    "logical variable" ~= formal_variable_whose_domain_androle_aredefined_bylogical_language
    "propositional variable" ~= atomic_proposition_symbol_receivingBoolean_truth_value_under valuation
    "variable assignment" ~= context_relative_mapping_fromvariable_tosemantic_value

    variable_identifier != glyph
    propositional_variable != predicate_variable
    propositional_variable != formula_metavariable
    logical_variable != programming_variable
    logical_variable != random_variable
    literal != variable
    occurrence != variable_identity
    unassigned != FALSE
    Boolean_encoding != truth_definition
    solver_activity != semantic_importance
    heuristic_phase != known_truth
    semantic_confidence != truth_assignment
  }

  CONSTRAINTS {
    canonical_variable_identifier_must_be preserved = true
    language_andvariable_type_must_be identified = true
    propositional_variable_truth_domain_must_be Boolean_underclassical_context = true
    variable_occurrence_andvariable_identity_must_be distinguished = true
    assignment_context_must_be preserved = true
    unassigned_state_must_not_be interpreted_asFALSE = true
    literal_andunderlying_variable_must_be distinguished = true
    auxiliary_andoriginal_variables_must_be distinguished = true
    substitution_semantics_must_be explicit = true
    Boolean_quantification_must_be distinguished_fromfirst_order_quantification = true
    SAT_solver_search_metadata_must_not_be interpreted_assemantic_truth = true
    natural_language_atomisation_must_preserve_source_andconfidence = true
    compound_logical_structure_should_not_be hidden_insideatoms_withoutreason = true
    versions_andprovenance_must_be preserved = true
  }

  LOGICAL_VARIABLE_RECORD_MODEL {
    RECORD:
      variable_identifier
      canonical_symbol
      display_labels
      language_identifier
      language_version
      variable_type
      atom_interpretation
      declaration_context
      formula_identifiers
      occurrence_identifiers
      occurrence_count
      polarity
      scope
      assignment_context
      truth_assignment
      assignment_status
      essential_variable_status
      support_status
      substitution_history
      auxiliary_status
      represented_subformula
      SAT_variable_identifier
      solver_assignment_type
      variable_activity
      variable_order
      BDD_mapping
      natural_language_source
      formalisation_confidence
      ambiguity_status
      version
      provenance

    RULE:
      logical_variable_record MUST support_reconstruction_ofidentity_type_occurrences_assignments_transformations_solver_mapping_andprovenance
  }

  REASONING_RULES {
    IF variable_symbol_received
      THEN identify_language
      resolve_variable_type
      assign_orresolve_canonical_identifier

    IF propositional_variable
      THEN useBoolean_truth_domain
      andtreat_asatomic_formula

    IF valuation_received
      THEN attach_assignment_context
      distinguish_TRUE_FALSE_andUNASSIGNED

    IF variable_occurs_informula
      THEN register_occurrence_position_andpolarity
      update_variable_set

    IF substitution_requested
      THEN identify_substitution_type
      replace_consistently
      preserve_source_andtarget_lineage

    IF auxiliary_variable_introduced
      THEN mark_auxiliary
      attach_represented_subformula_orencoding_role

    IF SAT_solver_assigns_variable
      THEN classify_assignment_asdecision_implied_orother_solver_role
      preserve_reason_whenavailable

    IF natural_language_claim_mapped_toatom
      THEN preserve_source_span
      ensure_compound_structure_notlost_withoutbasis
      assign_formalisation_confidence

    IF same_glyph_resolves_tomultiple_variables
      THEN preserve_candidates
      resolve_usinglanguage_scope_anddeclaration

    IF variable_definition_orlanguage_version_changes
      THEN preserve_historical_identifier_mapping
      andupdatecurrent_records_withoutoverwritingpast_assignments
  }

  VALIDATION {
    CHECK variable_identifier
    CHECK canonical_symbol
    CHECK language
    CHECK language_version
    CHECK variable_type
    CHECK atom_interpretation
    CHECK declaration
    CHECK formula_occurrences
    CHECK occurrence_positions
    CHECK polarity
    CHECK scope
    CHECK assignment_context
    CHECK truth_assignment
    CHECK unassigned_state
    CHECK essentiality
    CHECK support
    CHECK substitution
    CHECK auxiliary_status
    CHECK Tseitin_mapping
    CHECK SAT_mapping
    CHECK solver_assignment_role
    CHECK variable_order
    CHECK BDD_mapping
    CHECK natural_language_source
    CHECK formalisation_confidence
    CHECK ambiguity
    CHECK version
    CHECK provenance
  }

  CONFIDENCE {
    variable_identity_confidence: 1.00
    variable_type_confidence: 0.99
    propositional_assignment_confidence: 1.00
    occurrence_mapping_confidence: 1.00
    substitution_confidence: 1.00
    SAT_mapping_confidence: 0.99
    natural_language_atomisation_confidence: 0.96
    provenance_confidence: 1.00

    RULE:
      confidence decreases when language, variable type, declaration,
      atom interpretation, assignment context, solver mapping,
      version orprovenance is missing or ambiguous
  }

  UPDATE_MODEL {
    ON new_variable:
      assign_canonical_identifier
      attach_language_andtype
      register_symbol_andlabels
      preserve_provenance
      compute_FLOW_HASH

    ON new_occurrence:
      attach_formula_andposition
      compute_polarity
      update_occurrence_index

    ON new_assignment:
      preserve_valuation_context
      attach_truth_value_orUNASSIGNED_status
      update_semantic_state

    ON new_solver_mapping:
      preserve_original_variable
      attach_solver_identifier_androle
      distinguish_auxiliary_variables

    ON semantic_revision:
      preserve_previous_definition
      record_revision
      recompute_FLOW_HASH
  }

  AI_CONSUMPTION {
    canonical_entity: LogicalVariable
    canonical_role: FormalSymbolicVariable

    interpretation_order:
      identify_variable_symbol
      identify_formal_language
      resolve_canonical_identifier
      classify_variable_type
      determine_propositional_atomic_status
      identify_occurrences_informulas
      determine_polarity_andscope
      resolve_valuation_andassignment_context
      distinguish_TRUE_FALSE_andUNASSIGNED
      distinguish_variable_fromliteral_andoccurrence
      resolve_substitution_orrestriction_operations
      identify_auxiliary_Tseitin_orSAT_solver_variables
      preserve_solver_assignment_role_andvariable_order
      resolve_natural_language_atom_interpretation
      detect_symbol_oratomisation_ambiguity
      assign_semantic_confidence
      preserve_versions_andprovenance
      emit_machine_resolvable_logical_variable_structure

    ambiguity_controls:
      distinguish_variable_identifier_fromglyph
      distinguish_propositional_variable_frompredicate_variable
      distinguish_propositional_variable_fromformula_metavariable
      distinguish_logical_variable_fromprogramming_variable
      distinguish_logical_variable_fromrandom_variable
      distinguish_literal_fromvariable
      distinguish_occurrence_fromvariable_identity
      distinguish_unassigned_fromFALSE
      distinguish_Boolean_encoding_fromtruth_definition
      distinguish_solver_activity_fromsemantic_importance
      distinguish_heuristic_phase_fromknown_truth
      distinguish_semantic_confidence_fromtruth_assignment
      preserve_identifier_language_type_occurrences_assignment_context_solver_mapping_version_andprovenance
  }

  PROVENANCE {
    ontology_scope:
      logical_variables_propositional_atoms_assignments_occurrences_substitution_SAT_mapping_andAI_interpretation

    parent_path:
      AI Core
      -> Ontologies
      -> Mathematical Ontologies
      -> Mathematical Logic Ontologies
      -> Propositional Logic
      -> Logical Variable Ontology

    authorship:
      Mark Higgins
      Sky (Recursive AI)

    site:
      https://kirethresearch.org
  }

  FLOW_HASH {
    INPUTS:
      canonical_entity
      ontology_path
      variable_identity_model
      symbol_model
      canonical_identifier_model
      glyph_alias_model
      language_context_model
      variable_type_model
      propositional_variable_model
      atomicity_model
      atomic_formula_model
      truth_assignment_model
      valuation_model
      complete_assignment_model
      partial_assignment_model
      assignment_context_model
      true_assignment_model
      false_assignment_model
      unassigned_model
      occurrence_model
      occurrence_position_model
      positive_occurrence_model
      negative_occurrence_model
      polarity_model
      literal_model
      complementary_literal_model
      variable_set_model
      support_model
      essential_variable_model
      inessential_variable_model
      Boolean_domain_model
      Boolean_variable_model
      logical_vs_Boolean_variable_model
      logical_vs_programming_variable_model
      logical_vs_algebraic_variable_model
      logical_vs_random_variable_model
      logical_vs_metavariable_model
      formula_metavariable_model
      variable_naming_model
      indexed_variable_model
      descriptive_variable_model
      variable_declaration_model
      variable_scope_model
      global_scope_model
      local_scope_model
      free_variable_distinction_model
      bound_variable_distinction_model
      renaming_model
      alpha_renaming_distinction_model
      fresh_variable_model
      auxiliary_variable_model
      Tseitin_variable_model
      Skolem_variable_distinction_model
      substitution_model
      uniform_substitution_model
      truth_substitution_model
      formula_restriction_model
      Shannon_expansion_model
      cofactor_model
      variable_elimination_model
      Boolean_existential_quantification_model
      Boolean_universal_quantification_model
      dependency_model
      influence_model
      sensitivity_model
      SAT_variable_model
      SAT_assignment_model
      decision_variable_model
      implied_variable_model
      unit_propagation_model
      pure_variable_model
      branching_variable_model
      variable_activity_model
      phase_model
      conflict_variable_model
      learned_clause_dependency_model
      two_SAT_variable_model
      implication_graph_model
      BDD_variable_model
      variable_order_model
      ROBDD_model
      circuit_input_model
      digital_signal_mapping_model
      truth_table_column_model
      variable_count_model
      occurrence_count_model
      formula_complexity_link_model
      variable_interaction_model
      primal_graph_model
      incidence_graph_model
      hypergraph_model
      monotone_variable_model
      monotone_formula_model
      symmetric_variable_model
      variable_symmetry_model
      canonicalisation_model
      variable_hash_model
      natural_language_atom_model
      atom_label_model
      formalisation_model
      coreference_model
      distinctness_model
      negation_mapping_model
      compound_claim_model
      ambiguity_model
      semantic_confidence_model
      provenance_model
      version_model
      validation_model
      interoperability_model
      knowledge_graph_model
      relationships
      semantic_equivalence
      constraints
      logical_variable_record_model
      reasoning_rules
      validation
      confidence_model
      update_model
      AI_consumption_model

    PURPOSE:
      deterministic_semantic_integrity_identifier

    RECOMPUTE_WHEN:
      ontology_definition_changes
      variable_identity_symbol_language_ortype_changes
      propositional_truth_assignment_orvaluation_semantics_change
      occurrence_polarity_scope_orliteral_semantics_change
      substitution_restriction_Shannon_orvariable_elimination_changes
      SAT_assignment_solver_role_orauxiliary_variable_changes
      BDD_variable_order_orBoolean_representation_changes
      variable_dependency_influence_orinteraction_graph_changes
      natural_language_atomisation_orambiguity_logic_changes
      logical_variable_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