Skip to main content

Truth Table Ontology

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

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

FLOW TruthTableOntology {

  DOMAIN:
    AI Core
    -> Ontologies
    -> Mathematical Ontologies
    -> Mathematical Logic Ontologies
    -> Propositional Logic
    -> Truth Table Ontology

  PURPOSE:
    Represent a truth table as a machine-interpretable exhaustive semantic structure for evaluating propositional formulas over all possible truth assignments to their atomic propositions under a declared truth-functional logic. The ontology models variables, valuation rows, truth-value columns, subformula columns, connective evaluation, row ordering, truth vectors, satisfiability, validity, tautology, contradiction, contingency, semantic equivalence, argument validity, countermodels, canonical normal forms, Boolean functions, computational generation, verification, provenance and AI interpretation. It enables deterministic reconstruction of a table from a formula and atom ordering while preventing row order, numeric encoding, partial tables, sampled valuations or solver outputs from being confused with the complete semantic definition.

  ENTITY TruthTable {
    TYPE: ExhaustivePropositionalSemanticTable

    PROPERTIES:
      has_identifier
      has_logic_system
      has_formula
      has_atomic_variables
      has_variable_order
      has_rows
      has_columns
      has_truth_values
      has_truth_vector
      may_determine_satisfiability
      may_determine_validity
      may_compare_equivalence
      has_version
      has_provenance
  }

  ENTITY TruthTableRow {
    TYPE: ValuationEvaluationRecord

    COMPONENTS:
      row_identifier
      valuation
      atom_values
      subformula_values
      target_value
  }

  ENTITY TruthTableColumn {
    TYPE: OrderedSemanticColumn

    POSSIBLE:
      atomic_variable_column
      subformula_column
      target_formula_column
  }

  ENTITY TruthVector {
    TYPE: OrderedFormulaEvaluationVector

    COMPONENTS:
      formula_identifier
      valuation_order
      truth_values
  }

  TABLE_IDENTITY_MODEL {
    fields:
      truth_table_identifier
      formula_identifier
      logic_system
      atom_order
      row_order
      version

    RULE:
      table_identity MUST preserve_semantic_ordering_metadata
  }

  LOGIC_CONTEXT_MODEL {
    default:
      classical_propositional_logic

    truth_domain:
      TRUE
      FALSE

    RULE:
      nonclassical_truth_tables MUST declareseparate_truth_domain_andconnectives
  }

  SOURCE_FORMULA_MODEL {
    formula:
      well_formed_propositional_expression

    RULE:
      source_formula_AST SHOULD be preserved
  }

  ATOM_SET_MODEL {
    Vars(phi):
      distinct_atomic_variables_informula

    RULE:
      duplicate_occurrences_do_notcreateadditional_truth_dimensions
  }

  ATOM_COUNT_MODEL {
    n:
      cardinality_ofdistinct_atom_set

    RULE:
      complete_classical_truth_table_has_2^n_rows
  }

  VARIABLE_ORDER_MODEL {
    order:
      p_1,p_2,...,p_n

    RULE:
      order MUST be fixed_beforecanonical_row_generation
  }

  ROW_COUNT_MODEL {
    classical_complete:
      rows = 2^n

    RULE:
      row_count_depends_onnumber_ofdistinct_atoms
  }

  VALUATION_MODEL {
    row:
      maps_each_atom_toTRUE_orFALSE

    RULE:
      everycomplete_row MUST assignallatoms
  }

  COMPLETE_ROW_MODEL {
    row:
      total_assignment_overatom_set

    RULE:
      complete_table_contains_everypossible_total_assignment_exactlyonce
  }

  PARTIAL_ROW_MODEL {
    row:
      assignment_to subset_ofatoms

    RULE:
      partial_row != complete_truth_table_row
  }

  ROW_UNIQUENESS_MODEL {
    table:
      no_duplicate_complete_valuations

    RULE:
      duplicate_rows SHOULD be flagged
  }

  ROW_COVERAGE_MODEL {
    complete_table:
      covers_all_2^n_valuations

    RULE:
      missingvaluation means_table_notexhaustive
  }

  ROW_ORDER_MODEL {
    possible:
      binary_counting
      lexicographic
      Gray_code
      custom

    RULE:
      semantic_results_independent_ofrow_order_buttruth_vector_identity_requiresorder
  }

  BINARY_ROW_ORDER_MODEL {
    mapping:
      TRUE_FALSE_or1_0_pattern

    RULE:
      bit_significance_convention MUST be explicit
  }

  LEXICOGRAPHIC_ROW_ORDER_MODEL {
    ordering:
      based_onfixed_variable_order_andtruth_symbol_order

    RULE:
      truth_symbol_order MUST be declared
  }

  GRAY_CODE_ROW_MODEL {
    property:
      adjacent_rows_differ_byonevariable

    RULE:
      Gray_order_changesvector_order_notformula_semantics
  }

  ROW_IDENTIFIER_MODEL {
    fields:
      table_identifier
      row_index
      valuation_hash

    RULE:
      row_index_alone_depends_onordering
  }

  COLUMN_MODEL {
    table:
      containsordered_columns

    RULE:
      column_role MUST be explicit
  }

  ATOMIC_COLUMN_MODEL {
    column:
      values_ofsingle_propositional_variable_acrossrows

    RULE:
      atom_identifier MUST be stable
  }

  SUBFORMULA_COLUMN_MODEL {
    column:
      truth_values_ofsubformula

    RULE:
      subformula_AST_identifier SHOULD be preserved
  }

  TARGET_COLUMN_MODEL {
    column:
      truth_values_ofprimary_formula

    RULE:
      target_column MUST be identifiable
  }

  COLUMN_ORDER_MODEL {
    possible:
      atoms_first
      subformulas_in_dependency_order
      target_last

    RULE:
      display_order != semantic_dependency_order_necessarily
  }

  CELL_MODEL {
    fields:
      row_identifier
      column_identifier
      truth_value

    RULE:
      cell_value MUST be derivable_fromvaluation_andformula
  }

  TRUTH_VALUE_MODEL {
    classical:
      TRUE
      FALSE

    RULE:
      display_encodings_areseparate
  }

  BOOLEAN_ENCODING_MODEL {
    TRUE -> 1
    FALSE -> 0

    RULE:
      1_and0_areencodings_nottruth_values_byidentity
  }

  SYMBOLIC_ENCODING_MODEL {
    possible:
      T_F
      true_false
      top_bottom

    RULE:
      encoding_profile MUST be preserved
  }

  CONNECTIVE_MODEL {
    possible:
      NOT
      AND
      OR
      XOR
      IMPLIES
      IFF
      NAND
      NOR

    RULE:
      truth_function MUST be declared
  }

  NEGATION_EVALUATION_MODEL {
    NOT TRUE = FALSE
    NOT FALSE = TRUE
  }

  CONJUNCTION_EVALUATION_MODEL {
    TRUE AND TRUE = TRUE
    otherwise = FALSE
  }

  DISJUNCTION_EVALUATION_MODEL {
    FALSE OR FALSE = FALSE
    otherwise = TRUE
  }

  XOR_EVALUATION_MODEL {
    true_when:
      operands_differ
  }

  IMPLICATION_EVALUATION_MODEL {
    false_when:
      antecedent_TRUE
      consequent_FALSE

    RULE:
      material_implication != causation
  }

  BICONDITIONAL_EVALUATION_MODEL {
    true_when:
      operands_equal
  }

  NAND_EVALUATION_MODEL {
    result:
      NOT(A AND B)
  }

  NOR_EVALUATION_MODEL {
    result:
      NOT(A OR B)
  }

  DEPENDENCY_EVALUATION_MODEL {
    formula_AST:
      evaluate_children_beforeparent

    RULE:
      subformula_columns MAY followtopological_dependency_order
  }

  BOTTOM_UP_EVALUATION_MODEL {
    process:
      atoms
      immediate_subformulas
      higher_subformulas
      target

    RULE:
      eachcomputed_value MUST be traceable
  }

  COMPUTATION_TRACE_MODEL {
    row:
      records_subformula_evaluations

    RULE:
      trace MUST align_withAST
  }

  TRUTH_VECTOR_MODEL {
    target_formula:
      ordered_values_acrossrows

    RULE:
      vector_requiresrow_order_metadata
  }

  TRUTH_VECTOR_HASH_MODEL {
    input:
      atom_order
      row_order
      truth_vector
      logic_system

    RULE:
      hash_withoutordering_metadata_isnotcanonical
  }

  SEMANTIC_SIGNATURE_MODEL {
    formula:
      truth_vector_undercanonical_atom_androw_order

    RULE:
      formulas_withsame_semantic_signature_areequivalent_underclassical_propositional_semantics
  }

  TAUTOLOGY_MODEL {
    target_column:
      allTRUE

    RULE:
      table_proves_classical_validity_whencomplete
  }

  CONTRADICTION_MODEL {
    target_column:
      allFALSE

    RULE:
      table_proves_unsatisfiability_whencomplete
  }

  CONTINGENCY_MODEL {
    target_column:
      containsTRUE_andFALSE
  }

  SATISFIABILITY_MODEL {
    condition:
      at_least_one_target_TRUE

    witness:
      corresponding_valuation
  }

  UNSATISFIABILITY_MODEL {
    condition:
      no_target_TRUE_incomplete_table

    RULE:
      completeness_ofrow_coverage REQUIRED
  }

  VALIDITY_MODEL {
    condition:
      every_target_value_TRUE

    RULE:
      incomplete_table_cannotestablish_validity_byexhaustion
  }

  FALSIFIABILITY_MODEL {
    condition:
      atleastone_target_FALSE

    witness:
      countervaluation
  }

  MODEL_MODEL {
    row:
      model_offormula_if target_TRUE
  }

  COUNTERMODEL_MODEL {
    row:
      countermodel_toformula_validity_if target_FALSE
  }

  MODEL_SET_MODEL {
    formula:
      set_ofrows_where target_TRUE

    RULE:
      model_set_canrepresentBoolean_function_extension
  }

  SEMANTIC_EQUIVALENCE_MODEL {
    formulas_A_B:
      equivalent_ifcolumns_identical_foreveryvaluation

    RULE:
      atom_mapping_andcompletevaluation_set MUST match
  }

  COLUMN_COMPARISON_MODEL {
    A_column:
      compare_withB_column

    possible:
      identical
      complement
      implication_relation
      unrelated

    RULE:
      comparison_semantics MUST be explicit
  }

  COMPLEMENT_COLUMN_MODEL {
    B:
      complement_ofA_ifB_row_value = NOT A_row_value_foreveryrow
  }

  IMPLICATION_COLUMN_MODEL {
    A_implies_B:
      no_row_withA_TRUE_andB_FALSE

    RULE:
      thisestablishes_semantic_entailment_betweenformulas
  }

  BICONDITIONAL_COLUMN_MODEL {
    A_equivalent_B:
      A_IFF_B_column_allTRUE
  }

  XOR_EQUIVALENCE_TEST_MODEL {
    A_equivalent_B:
      A_XOR_B_column_allFALSE
  }

  ARGUMENT_TABLE_MODEL {
    premises:
      P_1...P_n

    conclusion:
      C

    RULE:
      validity_analysis focuses_onrows_whereallpremises_TRUE
  }

  PREMISE_COLUMN_MODEL {
    each_premise:
      evaluated_foreveryrow
  }

  CONCLUSION_COLUMN_MODEL {
    conclusion:
      evaluated_foreveryrow
  }

  CRITICAL_ROW_MODEL {
    row:
      allpremises_TRUE

    RULE:
      argument_validity determined_onlybycritical_rows
  }

  INVALIDATING_ROW_MODEL {
    row:
      allpremises_TRUE
      conclusion_FALSE

    RULE:
      oneinvalidating_row_refutesargument_validity
  }

  ARGUMENT_VALIDITY_MODEL {
    valid:
      no_invalidating_row_incomplete_table

    RULE:
      premise_truth_inactual_world_isnotpart_offormal_validity_test
  }

  VACUOUS_VALIDITY_MODEL {
    condition:
      no_row_satisfiesallpremises

    result:
      semantic_entailment_holds_classically

    RULE:
      inconsistent_premises_canentailanyconclusion_underclassical_semantics
  }

  ENTAILMENT_MODEL {
    Gamma entails C:
      everyrow_satisfyingGamma_satisfiesC
  }

  ENTAILMENT_REDUCTION_MODEL {
    finite_Gamma:
      conjunction(Gamma) -> C

    valid_if:
      target_column_allTRUE
  }

  CONSISTENCY_MODEL {
    premise_set:
      jointly_satisfiable_ifatleastonecritical_row

    RULE:
      no_critical_row meanspremises_semantically_inconsistent
  }

  FORMULA_SET_TABLE_MODEL {
    formulas:
      evaluated_overcommon_atom_union

    RULE:
      allrows MUST assignunion_ofvariables
  }

  ATOM_UNION_MODEL {
    formula_set:
      atom_set = union_ofVars(each_formula)
  }

  PROJECTION_MODEL {
    larger_table:
      project_to subset_ofvariables

    RULE:
      duplicate_projected_rows MAY collapse
  }

  RESTRICTION_MODEL {
    table:
      retain_rows_matchingfixed_assignment

    RULE:
      restricted_table != complete_table_overoriginal_atom_set
  }

  COFACTOR_TABLE_MODEL {
    fix:
      p=TRUE_orFALSE

    result:
      truth_table_ofrestricted_formula_overremainingvariables
  }

  SHANNON_MODEL {
    formula:
      decomposed_byvariable_cofactors

    RULE:
      table_rows_partition_byp_truth_value
  }

  CANONICAL_DNF_MODEL {
    construction:
      for eachTRUE_row
      create_minterm
      OR_all_minterms

    RULE:
      atom_order_andpolarity_convention MUST be preserved
  }

  MINTERM_MODEL {
    row:
      maps_to conjunction_containingeveryatom_once

    polarity:
      positive_ifrow_TRUE
      negative_ifrow_FALSE
  }

  CANONICAL_CNF_MODEL {
    construction:
      for eachFALSE_row
      create_maxterm
      AND_all_maxterms
  }

  MAXTERM_MODEL {
    row:
      maps_to disjunction_containingeveryatom_once

    polarity:
      chosen_sothatmaxterm_FALSE_onthatrow
  }

  NORMAL_FORM_EXTRACTION_MODEL {
    truth_table:
      canproducecanonical_CNF_orDNF

    RULE:
      canonical_forms MAY be exponentiallylarge
  }

  BOOLEAN_FUNCTION_MODEL {
    truth_table:
      complete_extensional_definition_ofBoolean_function

    RULE:
      variable_order_part_ofrepresentation
  }

  FUNCTION_ARITY_MODEL {
    n:
      number_ofBoolean_inputs
  }

  FUNCTION_COUNT_MODEL {
    for_n_variables:
      number_ofBoolean_functions = 2^(2^n)

    RULE:
      assumeslabelled_input_variables
  }

  FUNCTIONAL_EQUIVALENCE_MODEL {
    formulas_orcircuits:
      same_truth_table_overcommoninputs

    RULE:
      establishes_sameBoolean_function
  }

  BOOLEAN_ALGEBRA_MODEL {
    table:
      mayverifyBoolean_identity_byrowwise_equality
  }

  BOOLEAN_IDENTITY_VERIFICATION_MODEL {
    equation:
      LHS = RHS

    method:
      comparecolumns_allrows

    RULE:
      complete_table REQUIRED
  }

  DIGITAL_LOGIC_MODEL {
    truth_table:
      specifiesBoolean_input_output_behaviour

    RULE:
      abstract_truth_values != physical_voltage_levels
  }

  LOGIC_GATE_MODEL {
    gate:
      truth_function_withtable

    possible:
      NOT
      AND
      OR
      XOR
      NAND
      NOR
  }

  MULTI_INPUT_GATE_MODEL {
    arity:
      greater_than2

    RULE:
      truth_table_rows = 2^arity
  }

  CIRCUIT_TRUTH_TABLE_MODEL {
    circuit:
      evaluateoutputs_foreveryinput_assignment

    RULE:
      internal_signal_columns MAY be included
  }

  MULTI_OUTPUT_TABLE_MODEL {
    inputs:
      shared

    outputs:
      multipleBoolean_functions

    RULE:
      eachoutput_hasowntruth_vector
  }

  CARE_SET_MODEL {
    valuations:
      semantically_relevant_inputs

    RULE:
      care_set_table != full_truth_table_unlessallvaluationsincluded
  }

  DONT_CARE_MODEL {
    row_oroutput:
      value_notconstrained_forapplication

    symbol:
      X_when_declared

    RULE:
      don't-care != third_logical_truth_value
  }

  INCOMPLETE_SPECIFICATION_MODEL {
    function:
      notdefined_orconstrained_onallinputs

    RULE:
      incomplete_specification != classical_totalBoolean_function
  }

  K_MAP_LINK_MODEL {
    truth_table:
      canmap_toKarnaugh_map

    RULE:
      Gray_code_cell_adjacency MUST be preserved
  }

  BDD_LINK_MODEL {
    truth_table:
      maycompile_toBDD_orROBDD

    RULE:
      BDD_variable_order MUST be explicit
  }

  SAT_LINK_MODEL {
    formula:
      satisfiable_iftruth_table_hasTRUE_row

    RULE:
      truth_table_enumeration_andSAT_solver_arealternative_methods
  }

  SAT_WITNESS_MODEL {
    TRUE_row:
      satisfying_assignment
  }

  UNSAT_PROOF_BY_TABLE_MODEL {
    complete_table:
      allrows_FALSE

    RULE:
      exhaustive_coverage_isproof_basis
  }

  VALIDITY_PROOF_BY_TABLE_MODEL {
    complete_table:
      allrows_TRUE
  }

  EQUIVALENCE_PROOF_BY_TABLE_MODEL {
    complete_common_table:
      compared_columns_equal_allrows
  }

  ARGUMENT_PROOF_BY_TABLE_MODEL {
    complete_table:
      noTRUE-premises_FALSE-conclusion row
  }

  TABLE_GENERATION_MODEL {
    input:
      formula
      ordered_atoms

    process:
      enumerate_valuations
      evaluate_subformulas
      populate_columns
  }

  VALUATION_ENUMERATION_MODEL {
    n_atoms:
      generate_2^n_assignments

    RULE:
      eachassignment_unique
  }

  RECURSIVE_GENERATION_MODEL {
    base:
      zero_atoms -> one_emptyvaluation

    recursive:
      extend_eachvaluation_withTRUE_andFALSE_fornewatom
  }

  BINARY_COUNTER_GENERATION_MODEL {
    index:
      0_to2^n_minus1

    bits:
      map_toatom_truth_values

    RULE:
      bit_toTRUE_mapping_andbit_significance MUST be declared
  }

  TABLE_VALIDATION_MODEL {
    checks:
      atom_count
      row_count
      row_uniqueness
      row_coverage
      cell_values
      target_values

    RULE:
      structural_andsemantic_validation BOTH required
  }

  ROW_VALIDATION_MODEL {
    row:
      assignsallatoms_exactlyonce

    RULE:
      duplicate_or missingassignment_invalid
  }

  CELL_VALIDATION_MODEL {
    cell:
      recompute_fromformula_androw

    RULE:
      stored_value MUST equalcomputed_value
  }

  COLUMN_VALIDATION_MODEL {
    column:
      formula_identifier
      values_matchrecalculation

    RULE:
      mislabeled_column MUST be flagged
  }

  TABLE_COMPLETENESS_MODEL {
    complete_if:
      row_count=2^n
      allvaluations_unique
      allvaluationscovered

    RULE:
      visual_size_alone_doesnotestablishcompleteness
  PARTIAL_TABLE_MODEL {
    table:
      fewer_thanallpossiblevaluations

    RULE:
      partial_table_canestablish_counterexample_orSAT_witness
      butnotUNSAT_orvalidity_byexhaustion
  }

  SAMPLED_TABLE_MODEL {
    rows:
      selectedvaluations_only

    RULE:
      sample_results MUST not_be generalised_toallvaluations
  }

  FILTERED_TABLE_MODEL {
    rows:
      selected_bycondition

    RULE:
      filter_condition MUST be preserved
  }

  COMPRESSED_TABLE_MODEL {
    representation:
      merges_rows_usingpatterns_orwildcards

    RULE:
      compression MUST preserveexact_semantics
  }

  WILDCARD_ROW_MODEL {
    symbol:
      * or X_when_declared

    meaning:
      multiplevaluations

    RULE:
      wildcard != truth_value
  }

  CUBE_MODEL {
    partial_assignment:
      represents_set_ofcompletevaluations

    RULE:
      omittedvariables_arefree_notFALSE
  }

  TABLE_SIZE_MODEL {
    rows:
      2^n

    growth:
      exponential_inatom_count

    RULE:
      exhaustive_tables_may_beimpractical_forlarge_n
  }

  SCALABILITY_MODEL {
    alternative_methods:
      SAT_solver
      BDD
      symbolic_reasoning

    RULE:
      alternative_method_result MUST preserveproof_orwitness_status
  }

  LAZY_EVALUATION_MODEL {
    process:
      evaluateonlyneeded_subformulas_orrows

    RULE:
      lazy_result != complete_table_unlesscoverage_completed
  }

  PARALLEL_GENERATION_MODEL {
    rows:
      independently_evaluable

    RULE:
      deterministic_row_identifiers_andordering SHOULD be preserved
  }

  CACHING_MODEL {
    subformula:
      cache_truth_vector

    RULE:
      cache_key MUST includeformula_AST_atom_order_andlogic_version
  }

  MEMOISATION_MODEL {
    repeated_subformula:
      reusecomputed_column

    RULE:
      structurally_identical_orcanonical_equivalent_key MUST be defined
  }

  COLUMN_DEPENDENCY_GRAPH_MODEL {
    nodes:
      atom_andsubformula_columns

    edges:
      DEPENDS_ON

    RULE:
      graph MUST beacyclic_forordinaryformula_AST
  }

  DISPLAY_MODEL {
    visual:
      headers
      rows
      truth_symbols

    RULE:
      display_format != semantic_table_identity
  }

  HEADER_MODEL {
    column_header:
      atom_orformula_label

    RULE:
      header SHOULD linktocanonical_formula_identifier
  }

  ROW_STRIPING_DISTINCTION_MODEL {
    formatting:
      visual_only

    RULE:
      presentation_style hasno_semantic_effect
  }

  SORTING_MODEL {
    table:
      rows_maybereordered

    RULE:
      semantic classification unchanged
      buttruth_vector_order_metadata MUST update
  }

  COLUMN_REORDERING_MODEL {
    display:
      columns_maybereordered

    RULE:
      column_identifiers_anddependencies MUST remainstable
  }

  SERIALISATION_MODEL {
    possible:
      CSV
      JSON
      HTML
      RDF
      binary

    RULE:
      serialisation MUST preserveatom_order_row_assignments_column_formula_ids_andtruth_values
  }

  CSV_MODEL {
    headers:
      variable_andformula_labels

    rows:
      truth_values

    RULE:
      metadata_forlogic_atom_mapping_andencoding SHOULD accompanyCSV
  }

  JSON_MODEL {
    fields:
      atoms
      rows
      columns
      formulas
      values

    RULE:
      Boolean_json_values_requiredeclared_mapping
  }

  HTML_TABLE_MODEL {
    purpose:
      human_readable_rendering

    RULE:
      DOM_order SHOULD notbeonlysource_ofsemantic_identity
  }

  ACCESSIBILITY_MODEL {
    requirements:
      meaningful_headers
      row_column_associations
      text_equivalents_for symbols

    RULE:
      accessibility_metadata MUST notchangeformal semantics
  }

  NONCLASSICAL_TABLE_MODEL {
    truth_domain:
      logic_specific

    rows:
      k^n_forfinite_k_valued_total_assignments

    RULE:
      k_andconnective_tables MUST be explicit
  }

  THREE_VALUED_TABLE_MODEL {
    truth_values:
      three_declared_values

    rows:
      3^n

    RULE:
      thirdvalue_semantics MUST be specified
  }

  MANY_VALUED_TABLE_MODEL {
    finite_truth_domain_size:
      k

    complete_rows:
      k^n

    RULE:
      designated_values MUST be identified_forvalidity
  }

  DESIGNATED_VALUE_MODEL {
    truth_domain:
      subset_designated

    RULE:
      nonclassical_validity_maydepend_ondesignatedness
  }

  FUZZY_TABLE_DISTINCTION_MODEL {
    graded_values:
      potentiallycontinuous

    RULE:
      exhaustivefinite_truth_table_maynotexist
  }

  PROBABILITY_TABLE_DISTINCTION_MODEL {
    probability_table:
      probabilities_overevents_orstates

    RULE:
      probability_table != truth_table
  }

  DECISION_TABLE_DISTINCTION_MODEL {
    decision_table:
      condition_action_rules

    RULE:
      decision_table != logical_truth_table
  }

  DATABASE_TABLE_DISTINCTION_MODEL {
    relational_table:
      data_rows_andcolumns

    RULE:
      generic_database_table != truth_table
  }

  CONFUSION_MATRIX_DISTINCTION_MODEL {
    matrix:
      predicted_vsactual_classes

    RULE:
      confusion_matrix != truth_table
  }

  STATE_TRANSITION_TABLE_DISTINCTION_MODEL {
    table:
      current_state_input_next_state

    RULE:
      state_transition_table != propositional_truth_table
  }

  NATURAL_LANGUAGE_FORMULA_MODEL {
    source:
      human_statement

    target:
      propositional_formula

    RULE:
      table_semantics depend_oncorrectformalisation
  }

  FORMALISATION_MODEL {
    process:
      identifyatoms
      identifyconnectives
      constructformula
      generatetable

    RULE:
      formalisation_confidence SHOULD be preserved
  }

  ATOM_LABEL_MODEL {
    atom:
      maps_tohuman_readable_claim

    RULE:
      label != truth_value
  }

  CONDITIONAL_TABLE_MODEL {
    formula:
      A -> B

    diagnostic_row:
      A=TRUE
      B=FALSE
      result=FALSE

    RULE:
      table_encodesmaterial_implication_notcausal_strength
  }

  BICONDITIONAL_TABLE_MODEL {
    formula:
      A <-> B

    result:
      TRUE_whenA_B_equal
  }

  OR_TABLE_MODEL {
    classical:
      inclusive

    RULE:
      natural_language_exclusive_OR_requiresXOR_table
  }

  AMBIGUITY_MODEL {
    possible:
      atom_order_missing
      row_order_missing
      truth_encoding_unknown
      formula_parse_ambiguous
      partial_table_mislabelled_complete

    RULE:
      ambiguity MUST be resolved_orpreserved
  }

  SEMANTIC_CONFIDENCE_MODEL {
    confidence:
      support_forformula_parse_atom_mapping_andtable_interpretation

    RULE:
      confidence != truth_value
  }

  ERROR_MODEL {
    possible:
      wrong_row_count
      duplicate_row
      missing_row
      incorrect_cell
      incorrect_formula_header
      wrong_connective_semantics
      encoding_mismatch

    RULE:
      error_type SHOULD identifyrow_column_andexpected_value
  }

  CORRECTION_MODEL {
    invalid_table:
      mayberecomputed_fromformula

    RULE:
      corrected_table MUST preserveoriginal_artifact_andrevision_provenance
  }

  VERIFICATION_MODEL {
    process:
      recompute_table_independently

    RULE:
      verification_requiresformula_logic_andatom_order
  }

  PROOF_CERTIFICATE_MODEL {
    truth_table:
      itself_mayserve_asfinite_semantic_certificate

    requires:
      completecoverage
      correctevaluation

    RULE:
      certificate_claim MUST includevalidation_status
  }

  AI_GENERATION_MODEL {
    AI:
      parseformula
      identifyatoms
      choosecanonicalorder
      enumeraterows
      evaluatecells
      classifyformula

    RULE:
      AI_generated_table SHOULD be machine_revalidated
  }

  AI_INTERPRETATION_MODEL {
    AI:
      readtable
      reconstructvaluations
      identifytargetcolumn
      determineclassification
      extractwitnesses

    RULE:
      AI MUST notinfercompleteness_fromappearancealone
  }

  EXPLAINABILITY_MODEL {
    output:
      formula
      atoms
      row_generation
      subformula_columns
      target_vector
      classification
      witness_orcountermodel

    RULE:
      explanation SHOULD exposewhyclassification_follows
  }

  PROVENANCE_MODEL {
    fields:
      source_formula
      parser
      atom_order
      row_order
      generator
      validator
      logic_version
      timestamp
      agent

    RULE:
      truth_table MUST remainprovenance_linked
  }

  VERSION_MODEL {
    versioned:
      formula
      language
      connective_semantics
      table_generator
      ontology

    RULE:
      historical_table MUST preserveversions
  }

  INTEROPERABILITY_MODEL {
    exchange:
      table_identifier
      formula_identifier
      atom_identifiers
      atom_order
      row_order
      valuations
      column_formula_identifiers
      truth_values
      logic_system
      completeness_status

    RULE:
      matrix_ofT_F_values_withoutmetadata_isnotlossless
  }

  KNOWLEDGE_GRAPH_MODEL {
    nodes:
      truth_table
      row
      column
      valuation
      atom
      formula
      truth_value

    edges:
      HAS_ROW
      HAS_COLUMN
      ASSIGNS
      EVALUATES
      SATISFIES
      REFUTES
      DEPENDS_ON
      REPRESENTS

    RULE:
      row_column_formula_andvaluation_entities MUST remainlinked
  }

  RELATIONSHIPS {
    TruthTable -> EVALUATES -> PropositionalFormula
    TruthTable -> HAS_ROW -> TruthTableRow
    TruthTable -> HAS_COLUMN -> TruthTableColumn
    TruthTableRow -> REPRESENTS -> Valuation
    Valuation -> ASSIGNS -> TruthValue
    TruthTableColumn -> REPRESENTS -> AtomOrSubformula
    TruthVector -> DERIVED_FROM -> TargetColumn
    TrueRow -> IS_MODEL_OF -> Formula
    FalseRow -> MAY_BE_COUNTERMODEL_TO -> ValidityClaim
  }

  SEMANTIC_EQUIVALENCE {
    "truth table" ~= exhaustive_table_ofpropositional_valuations_andformula_truth_values
    "truth table row" ~= onecompletevaluation_pluscomputed_formula_values
    "truth vector" ~= orderedsequence_offormula_truth_values_overdeclaredvaluation_order

    truth_table != probability_table
    truth_table != decision_table
    truth_table != database_table
    row_order != semantic_meaning
    truth_vector_withoutorder != canonical_semantic_signature
    partial_table != complete_truth_table
    sampled_rows != exhaustive_semantics
    don't-care != third_truth_value
    TRUE_FALSE_encoding != semantic_identity
    implication_table != causal_model
    semantic_confidence != truth_value
  }

  CONSTRAINTS {
    truth_table_identifier_formula_andlogic_system_must_be preserved = true
    atom_set_andvariable_order_must_be explicit = true
    complete_classical_table_must_contain_2_power_n_unique_rows = true
    everycomplete_row_must_assignallatoms = true
    row_coverage_anduniqueness_must_be validated = true
    connective_truth_functions_must_be correct = true
    target_andsubformula_columns_must_link_toformula_identifiers = true
    truth_vector_must_preserve_row_order = true
    partial_or sampled_tables_must_not_be labelled_exhaustive = true
    validity_UNSAT_equivalence_andargument_validity_bytable_requirecompletecoverage = true
    countermodels_andSAT_witnesses_should_be preserved = true
    numeric_anddisplay_encodings_must_be distinguished_fromtruth_values = true
    nonclassical_tables_must_define_truth_domain_anddesignated_values = true
    provenance_must_be preserved = true
  }

  TRUTH_TABLE_RECORD_MODEL {
    RECORD:
      truth_table_identifier
      formula_identifier
      source_formula
      formula_AST
      logic_system_identifier
      logic_version
      atom_identifiers
      atom_count
      variable_order
      row_order
      expected_row_count
      actual_row_count
      completeness_status
      row_identifiers
      valuations
      column_identifiers
      column_formula_identifiers
      truth_value_encoding
      target_column_identifier
      truth_vector
      satisfying_rows
      falsifying_rows
      satisfiability_status
      validity_status
      contingency_status
      countermodels
      argument_premises
      argument_conclusion
      argument_validity_status
      canonical_DNF
      canonical_CNF
      verification_status
      ambiguity_status
      semantic_confidence
      version
      provenance

    RULE:
      truth_table_record MUST support_independent_reconstruction_andsemantic_verification
  }

  REASONING_RULES {
    IF formula_received
      THEN parseformula
      identifydistinctatoms
      establishcanonical_orprovided_variable_order

    IF n_atoms_identified
      THEN expected_rows = 2^n_underclassical_semantics

    IF complete_table_requested
      THEN generateeveryuniquevaluation_exactlyonce

    FOR each_row:
      assignatom_values
      evaluatesubformulas_in dependency_order
      evaluatetarget
      storetrace

    IF alltarget_values_TRUE
      AND table_complete
      THEN classify_asvalid_tautology

    IF alltarget_values_FALSE
      AND table_complete
      THEN classify_asunsatisfiable_contradiction

    IF target_containsTRUE_andFALSE
      THEN classify_ascontingent

    IF anytarget_TRUE
      THEN classify_assatisfiable
      preserveatleastonewitness

    IF anytarget_FALSE
      THEN classify_asfalsifiable
      preserveatleastonecountervaluation

    IF comparing_formulas
      THEN evaluateoverunion_ofatoms
      comparecolumns_rowbyrow

    IF testing_argument
      THEN identifyrows_whereallpremises_TRUE
      searchforconclusion_FALSE

    IF table_partial_or sampled
      THEN allowwitness_orcounterexample_conclusions_whenvalid
      butdo_notclaimexhaustive_validity_orUNSAT

    IF table_revision_orformula_revision_occurs
      THEN preservepreviousversion
      regenerateandrevalidate_currenttable
  }

  VALIDATION {
    CHECK truth_table_identifier
    CHECK formula_identifier
    CHECK formula_AST
    CHECK logic_system
    CHECK atom_set
    CHECK atom_count
    CHECK variable_order
    CHECK row_order
    CHECK expected_row_count
    CHECK actual_row_count
    CHECK row_uniqueness
    CHECK row_coverage
    CHECK valuation_completeness
    CHECK column_identifiers
    CHECK subformula_dependencies
    CHECK connective_semantics
    CHECK cell_values
    CHECK target_column
    CHECK truth_vector
    CHECK satisfiability
    CHECK validity
    CHECK contingency
    CHECK countermodels
    CHECK semantic_equivalence
    CHECK argument_validity
    CHECK canonical_DNF_CNF
    CHECK partial_orcomplete_status
    CHECK encoding
    CHECK verification_status
    CHECK ambiguity
    CHECK semantic_confidence
    CHECK version
    CHECK provenance
  }

  CONFIDENCE {
    formula_parse_confidence: 1.00
    atom_identification_confidence: 1.00
    row_generation_confidence: 1.00
    connective_evaluation_confidence: 1.00
    table_completeness_confidence: 1.00
    semantic_classification_confidence: 1.00
    equivalence_argument_confidence: 1.00
    natural_language_formalisation_confidence: 0.96

    RULE:
      confidence decreases when formula parse, atom mapping,
      variable order, row coverage, connective semantics,
      completeness status, version orprovenance is missing or ambiguous
  }

  UPDATE_MODEL {
    ON new_truth_table:
      assign_table_identifier
      attach_formula_logic_andatom_order
      validate_rows_andcolumns
      compute_semantic_classification
      preserveprovenance
      compute_FLOW_HASH

    ON new_row:
      verifyvaluation_uniqueness
      evaluatecells
      updatecoverage_andclassification

    ON formula_revision:
      preserveprevioustable
      create_newtable_version
      regenerateallrows_andvalues

    ON logic_orconnective_revision:
      preservehistoricaltable
      registernewlogicversion
      reevaluatecurrenttable_undernewsemantics

    ON semantic_revision:
      preserve_previous_definition
      record_revision
      recompute_FLOW_HASH
  }

  AI_CONSUMPTION {
    canonical_entity: TruthTable
    canonical_role: ExhaustivePropositionalSemanticTable

    interpretation_order:
      identify_truth_table_andlogic_system
      identify_source_formula_andAST
      identifydistinct_atomic_variables
      resolvevariable_order_androw_order
      verifyexpected_row_count
      reconstructeachvaluation
      identifyatom_subformula_andtargetcolumns
      recomputecells_usingconnective_semantics
      verifyrow_uniqueness_andcoverage
      constructtruth_vector
      classify_satisfiability_validity_contradiction_orcontingency
      preserveSAT_witnesses_andcountermodels
      compareformula_columns_whenrequired
      evaluateargumentcritical_rows_whenrequired
      derivecanonical_DNF_orCNF_whenrequested
      distinguishcomplete_partial_sampled_andcompressed_tables
      detectencoding_orsemantic_ambiguity
      assignsemantic_confidence
      preserveversions_andprovenance
      emit_machine_resolvable_truth_table_structure

    ambiguity_controls:
      distinguish_truth_table_fromprobability_table
      distinguish_truth_table_fromdecision_table
      distinguish_truth_table_fromdatabase_table
      distinguish_row_order_fromsemantic_meaning
      distinguish_truth_vector_withoutorder_fromcanonical_signature
      distinguish_partial_table_fromcomplete_truth_table
      distinguish_sampled_rows_fromexhaustive_semantics
      distinguish_dont_care_fromthird_truth_value
      distinguish_TRUE_FALSE_encoding_fromsemantic_identity
      distinguish_implication_table_fromcausal_model
      distinguish_semantic_confidence_fromtruth_value
      preserve_formula_atoms_orders_rows_columns_values_completeness_version_andprovenance
  }

  PROVENANCE {
    ontology_scope:
      truth_tables_valuations_truth_vectors_validity_satisfiability_equivalence_arguments_andAI_semantic_evaluation

    parent_path:
      AI Core
      -> Ontologies
      -> Mathematical Ontologies
      -> Mathematical Logic Ontologies
      -> Propositional Logic
      -> Truth Table Ontology

    authorship:
      Mark Higgins
      Sky (Recursive AI)

    site:
      https://kirethresearch.org
  }

  FLOW_HASH {
    INPUTS:
      canonical_entity
      ontology_path
      table_identity_model
      logic_context_model
      source_formula_model
      atom_set_model
      atom_count_model
      variable_order_model
      row_count_model
      valuation_model
      complete_row_model
      partial_row_model
      row_uniqueness_model
      row_coverage_model
      row_order_model
      binary_row_order_model
      lexicographic_row_order_model
      Gray_code_row_model
      row_identifier_model
      column_model
      atomic_column_model
      subformula_column_model
      target_column_model
      column_order_model
      cell_model
      truth_value_model
      Boolean_encoding_model
      symbolic_encoding_model
      connective_model
      negation_evaluation_model
      conjunction_evaluation_model
      disjunction_evaluation_model
      XOR_evaluation_model
      implication_evaluation_model
      biconditional_evaluation_model
      NAND_evaluation_model
      NOR_evaluation_model
      dependency_evaluation_model
      bottom_up_evaluation_model
      computation_trace_model
      truth_vector_model
      truth_vector_hash_model
      semantic_signature_model
      tautology_model
      contradiction_model
      contingency_model
      satisfiability_model
      unsatisfiability_model
      validity_model
      falsifiability_model
      model_model
      countermodel_model
      model_set_model
      semantic_equivalence_model
      column_comparison_model
      complement_column_model
      implication_column_model
      biconditional_column_model
      XOR_equivalence_test_model
      argument_table_model
      premise_column_model
      conclusion_column_model
      critical_row_model
      invalidating_row_model
      argument_validity_model
      vacuous_validity_model
      entailment_model
      entailment_reduction_model
      consistency_model
      formula_set_table_model
      atom_union_model
      projection_model
      restriction_model
      cofactor_table_model
      Shannon_model
      canonical_DNF_model
      minterm_model
      canonical_CNF_model
      maxterm_model
      normal_form_extraction_model
      Boolean_function_model
      function_arity_model
      function_count_model
      functional_equivalence_model
      Boolean_algebra_model
      Boolean_identity_verification_model
      digital_logic_model
      logic_gate_model
      multi_input_gate_model
      circuit_truth_table_model
      multi_output_table_model
      care_set_model
      dont_care_model
      incomplete_specification_model
      K_map_link_model
      BDD_link_model
      SAT_link_model
      SAT_witness_model
      UNSAT_proof_by_table_model
      validity_proof_by_table_model
      equivalence_proof_by_table_model
      argument_proof_by_table_model
      table_generation_model
      valuation_enumeration_model
      recursive_generation_model
      binary_counter_generation_model
      table_validation_model
      row_validation_model
      cell_validation_model
      column_validation_model
      table_completeness_model
      partial_table_model
      sampled_table_model
      filtered_table_model
      compressed_table_model
      wildcard_row_model
      cube_model
      table_size_model
      scalability_model
      lazy_evaluation_model
      parallel_generation_model
      caching_model
      memoisation_model
      column_dependency_graph_model
      display_model
      header_model
      row_striping_distinction_model
      sorting_model
      column_reordering_model
      serialisation_model
      CSV_model
      JSON_model
      HTML_table_model
      accessibility_model
      nonclassical_table_model
      three_valued_table_model
      many_valued_table_model
      designated_value_model
      fuzzy_table_distinction_model
      probability_table_distinction_model
      decision_table_distinction_model
      database_table_distinction_model
      confusion_matrix_distinction_model
      state_transition_table_distinction_model
      natural_language_formula_model
      formalisation_model
      atom_label_model
      conditional_table_model
      biconditional_table_model
      OR_table_model
      ambiguity_model
      semantic_confidence_model
      error_model
      correction_model
      verification_model
      proof_certificate_model
      AI_generation_model
      AI_interpretation_model
      explainability_model
      provenance_model
      version_model
      interoperability_model
      knowledge_graph_model
      relationships
      semantic_equivalence
      constraints
      truth_table_record_model
      reasoning_rules
      validation
      confidence_model
      update_model
      AI_consumption_model

    PURPOSE:
      deterministic_semantic_integrity_identifier

    RECOMPUTE_WHEN:
      ontology_definition_changes
      truth_table_identity_formula_orlogic_system_changes
      atom_set_variable_order_orrow_order_changes
      row_generation_coverage_oruniqueness_changes
      connective_truth_function_orcell_evaluation_changes
      truth_vector_satisfiability_validity_orcontingency_semantics_change
      equivalence_entailment_argument_orcountermodel_semantics_change
      canonical_DNF_CNF_Boolean_function_orcircuit_semantics_change
      table_generation_validation_compression_orserialisation_changes
      nonclassical_truth_domain_or designated_value_changes
      AI_generation_interpretation_orconfidence_changes
      truth_table_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