Skip to main content

Hash Table Ontology

Data Structures
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 01 October 2026
Audio Overview
AI SEARCH

FLOW ALGEBRA — HASH TABLE ONTOLOGY
Semantic Library
Version: 4.0
Canonical Page:
https://kirethresearch.org/booksai-core/ontologies/computing-ontologies/data-structures/hash-table-ontology.html

FLOW HASH_TABLE_ONTOLOGY {

  META {
    DOMAIN = "Computing Ontologies"
    SUBDOMAIN = "Data Structures"
    ONTOLOGY = "Hash Table Ontology"
    PURPOSE = "Formalise hash tables, keys, values, hash functions, buckets, slots, collisions, probing, chaining, load factors, resizing, lookup, insertion, deletion, invariants and complexity."
    LOCALE = "en-GB"
  }

  ENTITY_TYPES {
    HASH_TABLE
    HASH_MAP
    HASH_SET
    OPEN_ADDRESSING_HASH_TABLE
    CHAINED_HASH_TABLE
    CUCKOO_HASH_TABLE
    ROBIN_HOOD_HASH_TABLE
    PERFECT_HASH_TABLE
    MUTABLE_HASH_TABLE
    IMMUTABLE_HASH_TABLE
    PERSISTENT_HASH_TABLE
    KEY
    VALUE
    KEY_VALUE_PAIR
    ENTRY
    HASH_FUNCTION
    HASH_VALUE
    HASH_CODE
    BUCKET
    SLOT
    BUCKET_INDEX
    TABLE_INDEX
    CAPACITY
    SIZE
    LOAD_FACTOR
    LOAD_FACTOR_THRESHOLD
    COLLISION
    COLLISION_RESOLUTION
    SEPARATE_CHAINING
    OPEN_ADDRESSING
    LINEAR_PROBING
    QUADRATIC_PROBING
    DOUBLE_HASHING
    PROBE_SEQUENCE
    TOMBSTONE
    EMPTY_SLOT
    OCCUPIED_SLOT
    DELETED_SLOT
    CHAIN
    NODE
    EQUALITY_FUNCTION
    KEY_COMPARISON
    OPERATION
    CREATE
    INSERT
    PUT
    UPDATE
    LOOKUP
    GET
    SEARCH
    CONTAINS
    DELETE
    REMOVE
    RESIZE
    REHASH
    CLEAR
    ITERATE
    TRAVERSE
    ALLOCATION
    DEALLOCATION
    INVARIANT
    KEY_UNIQUENESS_INVARIANT
    BUCKET_MAPPING_INVARIANT
    PROBE_INVARIANT
    LOAD_FACTOR_INVARIANT
    TABLE_STATE
    TIME_COMPLEXITY
    SPACE_COMPLEXITY
    BEST_CASE
    AVERAGE_CASE
    WORST_CASE
    MEMORY
    IMPLEMENTATION
    LANGUAGE_CONTEXT
    RUNTIME_CONTEXT
    CONFIGURATION
    ERROR
    EVIDENCE
    CONFIDENCE_SCORE
    PROVENANCE_RECORD
  }

  RELATIONSHIPS {
    IS_A
    INSTANCE_OF
    IMPLEMENTS
    PART_OF
    CONTAINS
    HAS_KEY
    HAS_VALUE
    HAS_ENTRY
    HAS_HASH_FUNCTION
    HASHES_TO
    MAPS_TO
    STORED_IN
    HAS_BUCKET
    HAS_SLOT
    HAS_INDEX
    HAS_CAPACITY
    HAS_SIZE
    HAS_LOAD_FACTOR
    HAS_THRESHOLD
    COLLIDES_WITH
    RESOLVES_COLLISION_BY
    CHAINS_WITH
    PROBES
    COMPARES
    INSERTS
    PUTS
    UPDATES
    LOOKS_UP
    GETS
    SEARCHES
    CONTAINS_KEY
    DELETES
    REMOVES
    RESIZES
    REHASHES
    CLEARS
    ITERATES
    ALLOCATES
    DEALLOCATES
    HAS_STATE
    TRANSITIONS_TO
    HAS_INVARIANT
    HAS_TIME_COMPLEXITY
    HAS_SPACE_COMPLEXITY
    HAS_IMPLEMENTATION
    HAS_CONFIGURATION
    DEPENDS_ON
    DERIVED_FROM
    INFERRED_FROM
    HAS_EVIDENCE
    HAS_CONFIDENCE
    HAS_PROVENANCE
    SEMANTICALLY_EQUIVALENT_TO
  }

  INPUTS {
    HASH_TABLE_SPECIFICATIONS
    HASH_TABLE_IMPLEMENTATIONS
    SOURCE_CODE
    KEY_AND_VALUE_DATA
    HASH_FUNCTION_DEFINITIONS
    HASH_VALUES
    BUCKET_AND_SLOT_DATA
    CAPACITY_AND_SIZE_DATA
    LOAD_FACTOR_DATA
    COLLISION_TRACES
    PROBE_TRACES
    CHAIN_DATA
    INSERTION_TRACES
    LOOKUP_TRACES
    DELETION_TRACES
    RESIZE_AND_REHASH_TRACES
    INVARIANT_DEFINITIONS
    COMPLEXITY_ANALYSES
    MEMORY_DATA
    LANGUAGE_CONTEXT
    RUNTIME_CONTEXT
    CONFIGURATION_DATA
    ONTOLOGY_TERMS
  }

  NORMALISE {
    STANDARDISE_HASH_TABLE_IDENTIFIERS
    NORMALISE_HASH_TABLE_TYPES
    NORMALISE_KEY_AND_VALUE_TYPES
    NORMALISE_HASH_FUNCTION_IDENTIFIERS
    NORMALISE_HASH_VALUES
    NORMALISE_BUCKET_AND_SLOT_IDENTIFIERS
    NORMALISE_TABLE_INDICES
    NORMALISE_SIZE_CAPACITY_AND_LOAD_FACTOR
    NORMALISE_COLLISION_STRATEGY_NAMES
    NORMALISE_PROBING_STRATEGIES
    NORMALISE_OPERATION_NAMES
    NORMALISE_COMPLEXITY_NOTATION
    NORMALISE_LANGUAGE_AND_RUNTIME_CONTEXT
    RESOLVE_TABLE_ENTRY_AND_KEY_IDENTITIES
    ALIGN_ONTOLOGY_TERMS
    REMOVE_DUPLICATES
    VALIDATE_METADATA
    PRESERVE_PROVENANCE
  }

  PROCESS HASH_TABLE_REASONING_PIPELINE {
    HASH_TABLE_REFERENCE
      -> TABLE_IDENTIFICATION
      -> TABLE_TYPE_RESOLUTION
      -> HASH_FUNCTION_RESOLUTION
      -> KEY_VALUE_AND_ENTRY_MAPPING
      -> BUCKET_OR_SLOT_MAPPING
      -> COLLISION_STRATEGY_MAPPING
      -> OPERATION_MAPPING
      -> INVARIANT_ANALYSIS
      -> COMPLEXITY_ANALYSIS
      -> VALIDATION
      -> OUTPUT
  }

  PROCESS HASH_MAPPING_REASONING {
    KEY
      -> HASH_FUNCTION

    HASH_FUNCTION(KEY)
      -> HASH_VALUE

    HASH_VALUE + TABLE_CAPACITY
      -> INITIAL_BUCKET_OR_SLOT_INDEX

    INITIAL_INDEX
      -> TARGET_BUCKET_OR_PROBE_START
  }

  PROCESS CHAINING_REASONING {
    KEY
      -> BUCKET_INDEX

    BUCKET_INDEX
      -> CHAIN

    CHAIN
      -> ENTRY_SEQUENCE

    LOOKUP
      -> KEY_COMPARISON_WITH_CHAIN_ENTRIES

    INSERT_COLLISION
      -> ADD_ENTRY_TO_CHAIN

    DELETE
      -> REMOVE_MATCHING_ENTRY_FROM_CHAIN
  }

  PROCESS OPEN_ADDRESSING_REASONING {
    KEY
      -> INITIAL_SLOT

    INITIAL_SLOT
      -> SLOT_STATE

    OCCUPIED_BY_DIFFERENT_KEY
      -> PROBE_SEQUENCE

    PROBE_SEQUENCE
      -> NEXT_CANDIDATE_SLOT

    EMPTY_OR_MATCHING_SLOT
      -> INSERT_UPDATE_OR_LOOKUP_RESULT

    DELETE
      -> TOMBSTONE_OR_IMPLEMENTATION_SPECIFIC_REPAIR
  }

  PROCESS LOOKUP_REASONING {
    LOOKUP(KEY)
      -> HASH_MAPPING

    HASH_MAPPING
      -> COLLISION_STRATEGY

    COLLISION_STRATEGY
      -> CANDIDATE_ENTRIES

    CANDIDATE_ENTRY
      -> KEY_EQUALITY_CHECK

    MATCH
      -> RETURN_VALUE_OR_ENTRY

    SEARCH_EXHAUSTED
      -> NOT_FOUND
  }

  PROCESS INSERTION_REASONING {
    INSERT(KEY, VALUE)
      -> HASH_MAPPING

    CANDIDATE_LOCATION
      -> EXISTING_KEY_CHECK

    EXISTING_KEY
      -> UPDATE_VALUE_IF_MAP_SEMANTICS

    NEW_KEY
      -> COLLISION_RESOLUTION
      -> INSERT_ENTRY

    RESULT
      -> SIZE_UPDATE
      -> LOAD_FACTOR_RECOMPUTATION
      -> RESIZE_CHECK
  }

  PROCESS DELETION_REASONING {
    DELETE(KEY)
      -> LOOKUP_ENTRY

    ENTRY_FOUND
      -> REMOVE_ENTRY_OR_MARK_DELETED

    REMOVE_OR_MARK
      -> SIZE_DECREMENT

    OPEN_ADDRESSING
      -> PRESERVE_PROBE_CHAIN_REACHABILITY

    RESULT
      -> INVARIANT_CHECK
  }

  PROCESS RESIZE_REASONING {
    LOAD_FACTOR_OR_POLICY_TRIGGER
      -> NEW_CAPACITY

    NEW_CAPACITY
      -> ALLOCATE_NEW_TABLE

    EXISTING_ENTRIES
      -> RECOMPUTE_BUCKET_OR_SLOT_USING_NEW_CAPACITY

    REINSERT_OR_REHASH_ENTRIES
      -> NEW_TABLE_STATE

    NEW_TABLE_STATE
      -> REPLACE_OLD_TABLE
  }

  PROCESS LOAD_FACTOR_REASONING {
    SIZE + CAPACITY
      -> LOAD_FACTOR = SIZE / CAPACITY

    LOAD_FACTOR
      -> THRESHOLD_COMPARISON

    THRESHOLD_EXCEEDED
      -> RESIZE_OR_REHASH_POLICY

    LOAD_FACTOR
      -> COLLISION_AND_PERFORMANCE_CONTEXT
  }

  PROCESS INVARIANT_REASONING {
    TABLE_STATE
      -> KEY_UNIQUENESS_CHECK_IF_MAP_OR_SET_REQUIRES

    EACH_ENTRY
      -> HASH_AND_COLLISION_STRATEGY_REACHABILITY_CHECK

    OPEN_ADDRESSING_TABLE
      -> PROBE_INVARIANT

    TABLE_STATE
      -> SIZE_CAPACITY_AND_LOAD_FACTOR_CONSISTENCY

    POST_OPERATION_STATE
      -> ALL_REQUIRED_INVARIANTS_CHECK
  }

  PROCESS COMPLEXITY_REASONING {
    HASH_TABLE + OPERATION
      -> SIZE_CAPACITY_LOAD_FACTOR_AND_COLLISION_CONTEXT

    HASH_FUNCTION
      -> HASH_COST

    LOOKUP_INSERT_DELETE
      -> BUCKET_CHAIN_LENGTH_OR_PROBE_LENGTH

    RESIZE
      -> ENTRY_REHASH_COST

    OPERATION_COST
      -> BEST_AVERAGE_AND_WORST_CASE

    STORAGE
      -> SPACE_COMPLEXITY
  }

  PROCESS PERSISTENCE_REASONING {
    PERSISTENT_HASH_TABLE_STATE(T1)
      + UPDATE
      -> NEW_TABLE_STATE(T2)

    T1
      -> PRESERVED

    T1 + T2
      -> STRUCTURAL_SHARING_IF_IMPLEMENTED
  }

  RULES {
    IF KEY_IS_USED
    THEN PRESERVE HASH_FUNCTION_AND_KEY_EQUALITY_SEMANTICS

    IF TWO_KEYS_HAVE_SAME_HASH_VALUE
    THEN DO_NOT ASSERT KEYS_ARE_EQUAL

    IF KEYS_ARE_EQUAL_UNDER_TABLE_SEMANTICS
    THEN REQUIRE HASH_CONSISTENCY_WHERE_IMPLEMENTATION_CONTRACT_REQUIRES

    IF COLLISION_OCCURS
    THEN APPLY CONFIGURED_COLLISION_RESOLUTION_STRATEGY

    IF TABLE_CAPACITY_CHANGES
    THEN RECOMPUTE_BUCKET_OR_SLOT_MAPPING_AS_REQUIRED

    IF OPEN_ADDRESSING_DELETE_OCCURS
    THEN PRESERVE_LOOKUP_REACHABILITY_FOR_OTHER_KEYS

    IF LOAD_FACTOR_IS_REPORTED
    THEN PRESERVE SIZE_AND_CAPACITY_CONTEXT

    IF SEMANTIC_IDENTIFIERS_DIFFER
    AND HASH_TABLE_REFERENT_IS_SAME
    THEN APPLY SEMANTIC_EQUIVALENCE
  }

  CONFIDENCE {
    CONFIDENCE_SCORE =
      WEIGHT(
        TABLE_IDENTITY_CERTAINTY,
        TABLE_TYPE_CERTAINTY,
        HASH_FUNCTION_CERTAINTY,
        KEY_EQUALITY_CERTAINTY,
        ENTRY_AND_BUCKET_COMPLETENESS,
        COLLISION_TRACE_COMPLETENESS,
        OPERATION_TRACE_COMPLETENESS,
        PROVENANCE_COMPLETENESS
      )

    LEVELS {
      HIGH
      MODERATE
      LOW
      INSUFFICIENT
    }

    IF HASH_FUNCTION_OR_EQUALITY_SEMANTICS_IS_UNKNOWN
    THEN REDUCE_KEY_MAPPING_CONFIDENCE

    IF COLLISION_STRATEGY_IS_UNKNOWN
    THEN REDUCE_LOOKUP_AND_UPDATE_CONFIDENCE

    IF COMPLETE_TABLE_STATE_AND_OPERATION_TRACE_CONFIRM_INVARIANTS
    THEN INCREASE_CONFIDENCE_SCORE
  }

  SEMANTIC_EQUIVALENCE {
    EQUIVALENCE_KEY =
      NORMALISE(
        ENTITY_TYPE,
        HASH_TABLE_IDENTIFIER,
        TABLE_TYPE,
        KEY_TYPE,
        VALUE_TYPE,
        HASH_FUNCTION,
        EQUALITY_SEMANTICS,
        CONFIGURATION
      )

    IF EQUIVALENCE_KEY(A) == EQUIVALENCE_KEY(B)
    THEN A SEMANTICALLY_EQUIVALENT_TO B

    ELSE PRESERVE_DISTINCT_ENTITIES
  }

  REASONING_CONSTRAINTS {
    HASH_TABLE != HASH_FUNCTION
    HASH_VALUE != KEY
    HASH_VALUE != UNIQUE_IDENTIFIER
    HASH_COLLISION != DUPLICATE_KEY
    BUCKET != ENTRY
    SLOT != VALUE
    HASH_MAP != HASH_SET
    OPEN_ADDRESSING != SEPARATE_CHAINING
    LINEAR_PROBING != QUADRATIC_PROBING
    TOMBSTONE != EMPTY_SLOT
    SIZE != CAPACITY
    LOAD_FACTOR != COLLISION_RATE
    AVERAGE_CASE_COMPLEXITY != WORST_CASE_COMPLEXITY
    CONSTANT_EXPECTED_LOOKUP != GUARANTEED_CONSTANT_WORST_CASE
    RESIZE != SIMPLE_MEMORY_EXTENSION_IN_ALL_IMPLEMENTATIONS
    KEY_EQUALITY_AND_HASH_SEMANTICS_MUST_BE_CONSISTENT_WITH_IMPLEMENTATION_CONTRACT
    PERFORMANCE_DEPENDS_ON_HASH_QUALITY_LOAD_FACTOR_COLLISION_STRATEGY_AND_INPUT_DISTRIBUTION
    PROVENANCE_MUST_BE_PRESERVED
    UNCERTAINTY_MUST_NOT_BE_DISCARDED
  }

  VALIDATION {
    CHECK_ENTITY_TYPES
    CHECK_RELATION_DOMAINS_AND_RANGES
    CHECK_HASH_TABLE_IDENTIFIER
    CHECK_TABLE_TYPE
    CHECK_KEY_AND_VALUE_TYPES
    CHECK_HASH_FUNCTION
    CHECK_KEY_EQUALITY_SEMANTICS
    CHECK_ENTRIES
    CHECK_BUCKET_OR_SLOT_MAPPING
    CHECK_COLLISION_STRATEGY
    CHECK_PROBE_SEQUENCE_IF_APPLICABLE
    CHECK_CHAIN_RELATIONS_IF_APPLICABLE
    CHECK_SIZE_AND_CAPACITY
    CHECK_LOAD_FACTOR
    CHECK_INSERTION
    CHECK_LOOKUP
    CHECK_DELETION
    CHECK_RESIZE_AND_REHASH
    CHECK_INVARIANTS
    CHECK_COMPLEXITY_CONTEXT
    CHECK_PERSISTENCE
    CHECK_LANGUAGE_RUNTIME_AND_CONFIGURATION
    CHECK_PROVENANCE
    CHECK_CONFIDENCE
    CHECK_SEMANTIC_CONSISTENCY
  }

  OUTPUTS {
    NORMALISED_HASH_TABLE_ENTITIES
    TABLE_TYPE_RELATIONS
    KEY_VALUE_AND_ENTRY_RELATIONS
    HASH_FUNCTION_RELATIONS
    HASH_VALUE_RELATIONS
    BUCKET_AND_SLOT_RELATIONS
    COLLISION_RELATIONS
    CHAINING_RELATIONS
    PROBING_RELATIONS
    LOOKUP_RELATIONS
    INSERTION_AND_UPDATE_RELATIONS
    DELETION_RELATIONS
    RESIZE_AND_REHASH_RELATIONS
    LOAD_FACTOR_RELATIONS
    HASH_TABLE_STATE_TRANSITIONS
    INVARIANT_RELATIONS
    TIME_COMPLEXITY_RELATIONS
    SPACE_COMPLEXITY_RELATIONS
    PERSISTENCE_AND_STRUCTURAL_SHARING_RELATIONS
    CONFIDENCE_SCORES
    EVIDENCE_LINKS
    PROVENANCE_RECORDS
    EXPLANATION_PATHS
  }

  UPDATE_MODEL {
    ON HASH_TABLE_OPERATION {
      NORMALISE
      RESOLVE_TABLE_ENTRY_AND_KEY_IDENTITIES
      UPDATE_ENTRY_SET
      UPDATE_BUCKET_OR_SLOT_STATE
      UPDATE_SIZE_AND_LOAD_FACTOR
      APPLY_RESIZE_OR_REHASH_IF_REQUIRED
      RECHECK_INVARIANTS
      UPDATE_CONFIDENCE
    }

    ON HASH_FUNCTION_COLLISION_POLICY_OR_CONFIGURATION_CHANGE {
      UPDATE_IMPLEMENTATION_CONTEXT
      RECOMPUTE_ENTRY_MAPPING
      REASSESS_COMPLEXITY
      RECHECK_SEMANTIC_EQUIVALENCE
      RECOMPUTE_AFFECTED_RELATIONS
      UPDATE_CONFIDENCE
      PRESERVE_VERSION_HISTORY
    }

    ON ONTOLOGY_REVISION {
      REMAP_TERMS
      CHECK_SEMANTIC_EQUIVALENCE
      IDENTIFY_DEPRECATED_TERMS
      MIGRATE_RELATIONSHIPS
      PRESERVE_PRIOR_VERSION_REFERENCES
    }
  }

  FLOW_HASH {
    HASH_INPUT =
      CANONICALISE(
        ENTITY_TYPES,
        RELATIONSHIPS,
        RULES,
        CONFIDENCE,
        SEMANTIC_EQUIVALENCE,
        REASONING_CONSTRAINTS,
        UPDATE_MODEL
      )

    FLOW_HASH = SHA256(HASH_INPUT)
  }

  AI_CONSUMPTION {
    INDEX {
      ONTOLOGY
      ENTITY_TYPES
      RELATIONSHIPS
      RULES
      OUTPUTS
    }

    RETRIEVE {
      BY_HASH_TABLE
      BY_TABLE_TYPE
      BY_KEY
      BY_VALUE
      BY_ENTRY
      BY_HASH_FUNCTION
      BY_BUCKET
      BY_SLOT
      BY_COLLISION
      BY_PROBE
      BY_LOAD_FACTOR
      BY_OPERATION
      BY_COMPLEXITY
      BY_CONFIDENCE
    }

    REASON {
      APPLY_RELATIONSHIPS
      APPLY_RULES
      ANALYSE_HASH_MAPPING
      ANALYSE_SEPARATE_CHAINING
      ANALYSE_OPEN_ADDRESSING
      TRACE_LOOKUPS
      TRACE_INSERTIONS
      TRACE_DELETIONS
      ANALYSE_RESIZE_AND_REHASH
      ANALYSE_LOAD_FACTOR
      CHECK_HASH_TABLE_INVARIANTS
      ANALYSE_COMPLEXITY
      ANALYSE_PERSISTENCE
      CHECK_SEMANTIC_EQUIVALENCE
      PRESERVE_UNCERTAINTY
      TRACE_EVIDENCE
      TRACE_PROVENANCE
      GENERATE_EXPLANATION_PATH
    }

    RESPONSE_POLICY {
      DISTINGUISH_HASH_TABLE_FROM_HASH_FUNCTION
      DISTINGUISH_HASH_COLLISION_FROM_DUPLICATE_KEY
      DISTINGUISH_OPEN_ADDRESSING_FROM_SEPARATE_CHAINING
      PRESERVE_KEY_EQUALITY_HASH_FUNCTION_LOAD_FACTOR_COLLISION_POLICY_IMPLEMENTATION_AND_RUNTIME_CONTEXT
      DISTINGUISH_EXPECTED_FROM_WORST_CASE_COMPLEXITY
      PRESERVE_HASH_TABLE_INVARIANTS_AND_VERSIONED_STATES
      RETURN_CONFIDENCE_WHEN_AVAILABLE
      RETURN_PROVENANCE_WHEN_AVAILABLE
      AVOID_UNSUPPORTED_HASH_TABLE_INFERENCE
    }
  }

  TERMINAL {
    RESULT =
      VALIDATED(
        SEMANTICALLY_NORMALISED(
          EVIDENCE_LINKED(
            CONFIDENCE_AWARE(
              HASH_TABLE_KNOWLEDGE
            )
          )
        )
      )
  }
}

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