Skip to main content

Bayes' Theorem Ontology

Probability Rules
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 23 September 2026
Audio Overview
FULL EXECUTABLE FLOW ALGEBRA — BAYES THEOREM ONTOLOGY
Kireth Research — Semantic Library
URL: https://kirethresearch.org/booksai-core/ontologies/probability-statistics-ontologies/probability-rules/bayes-theorem-ontology.html

FLOW_VERSION := "4.0"
FLOW_TYPE := "Full Executable Flow Algebra"
DOMAIN := "Probability & Statistics Ontologies"
SUBDOMAIN := "Probability Rules"
ONTOLOGY := "Bayes Theorem Ontology"
PRIMARY_ENTITY := BayesTheorem
AUTHORSHIP := "Mark Higgins — Sky (Recursive AI)"
SOURCE_SITE := "https://kirethresearch.org"

BEGIN_FLOW

BayesTheorem :=
    ConditionalProbabilityIdentity
    ∧ PriorToPosteriorUpdate
    ∧ LikelihoodWeighting
    ∧ EvidenceNormalisation

ProbabilitySpace :=
    (Ω,F,P)

Event :=
    A,B,H,E ∈ F

ConditionalProbability :=
    P(A|B)
    =
    P(A∩B)/P(B)
    where P(B)>0

MultiplicationRule :=
    P(A∩B)
    =
    P(B|A)P(A)
    =
    P(A|B)P(B)

BayesTheoremSimple :=
    P(A|B)
    =
    P(B|A)P(A)/P(B)
    where P(B)>0

Hypothesis :=
    H

Evidence :=
    E

PriorProbability :=
    P(H)

Likelihood :=
    P(E|H)

EvidenceProbability :=
    P(E)

PosteriorProbability :=
    P(H|E)

BayesianUpdate :=
    Prior
    ∧ Likelihood
    ∧ EvidenceNormalisation
    → Posterior

PosteriorFormula :=
    P(H|E)
    =
    P(E|H)P(H)/P(E)

Partition :=
    {H_i}
    ∧ PairwiseDisjoint(H_i)
    ∧ Union_i H_i=Ω

LawOfTotalProbability :=
    P(E)
    =
    Σ_i P(E|H_i)P(H_i)

BayesTheoremPartitionForm :=
    P(H_j|E)
    =
    P(E|H_j)P(H_j)
    /
    Σ_i P(E|H_i)P(H_i)

MutuallyExclusiveHypotheses :=
    H_i∩H_j=∅
    for i≠j

ExhaustiveHypotheses :=
    Union_i H_i=Ω

PriorNormalisation :=
    Σ_i P(H_i)=1
    for exhaustive mutually exclusive hypotheses

PosteriorNormalisation :=
    Σ_i P(H_i|E)=1
    where P(E)>0

PosteriorProportionality :=
    P(H|E)
    ∝
    P(E|H)P(H)

UnnormalisedPosteriorWeight :=
    w(H)
    :=
    P(E|H)P(H)

NormalisingConstant :=
    Z
    :=
    Σ_i w(H_i)

NormalisedPosterior :=
    P(H_i|E)
    =
    w(H_i)/Z

BayesianEvidence :=
    MarginalLikelihood
    :=
    P(E)

MarginalLikelihood :=
    Σ_i P(E|H_i)P(H_i)
    for discrete partition

ContinuousBayesTheorem :=
    p(θ|x)
    =
    p(x|θ)p(θ)
    /
    p(x)

ContinuousEvidence :=
    p(x)
    =
    Integral
    p(x|θ)p(θ)dθ

PosteriorDensity :=
    p(θ|x)

PriorDensity :=
    p(θ)

LikelihoodFunction :=
    L(θ;x)
    ∝
    p(x|θ)

BayesianParameterUpdate :=
    PriorDensity
    × Likelihood
    → Normalise
    → PosteriorDensity

Odds :=
    Odds(H)
    =
    P(H)/(1-P(H))

PriorOdds :=
    P(H)/P(H^c)

PosteriorOdds :=
    P(H|E)/P(H^c|E)

LikelihoodRatio :=
    P(E|H)/P(E|H^c)

BayesOddsForm :=
    PosteriorOdds
    =
    PriorOdds
    × LikelihoodRatio

LogOddsUpdate :=
    log(PosteriorOdds)
    =
    log(PriorOdds)
    +
    log(LikelihoodRatio)

BayesFactor :=
    BF_12
    =
    P(E|H1)/P(E|H2)

PosteriorOddsTwoHypotheses :=
    PosteriorOdds(H1:H2)
    =
    PriorOdds(H1:H2)
    × BF_12

Prior :=
    ProbabilityDistribution
    representing
    pre-evidence uncertainty

Posterior :=
    ProbabilityDistribution
    representing
    uncertainty_after_evidence

LikelihoodVsPosterior :=
    Likelihood
    is function_of hypothesis_or_parameter
    given observed evidence
    whereas
    Posterior
    is probability_distribution_after_update

EvidenceUpdate :=
    Observe(E)
    → ConditionProbabilityModelOn(E)

SequentialEvidence :=
    E1,E2,...,En

SequentialBayesUpdate :=
    Prior_0
    → ConditionOn(E1)
    → Posterior_1
    → ConditionOn(E2)
    → Posterior_2
    → ...
    → Posterior_n

SequentialPosterior :=
    P(H|E1,...,En)

ConditionallyIndependentEvidence :=
    E_i conditionally independent
    given H

IndependentLikelihoodProduct :=
    ConditionalIndependent(E1,...,En|H)
    ⇒
    P(E1,...,En|H)
    =
    Π_i P(E_i|H)

SequentialIndependentEvidenceUpdate :=
    P(H|E1,...,En)
    ∝
    P(H)
    Π_i P(E_i|H)

PosteriorAsNextPrior :=
    Posterior_n
    → Prior_(n+1)
    for sequential updating

ConjugatePrior :=
    PriorFamily
    such_that
    PosteriorBelongsToSameFamily
    for specified likelihood

BetaBernoulliUpdate :=
    Prior p~Beta(α,β)
    ∧ s successes
    ∧ f failures
    ⇒
    Posterior p~Beta(α+s,β+f)

BetaBinomialUpdate :=
    BetaPrior
    ∧ BinomialLikelihood
    → BetaPosterior

GammaPoissonUpdate :=
    GammaPrior
    ∧ PoissonLikelihood
    → GammaPosterior
    under matching parameterisation

NormalNormalUpdate :=
    NormalPrior
    ∧ NormalLikelihood
    with known variance assumptions
    → NormalPosterior

PredictiveDistribution :=
    P(X_new|Data)

PosteriorPredictive :=
    P(X_new|Data)
    =
    Integral
    P(X_new|θ)
    p(θ|Data)dθ

PriorPredictive :=
    P(X)
    =
    Integral
    P(X|θ)p(θ)dθ

BayesianDecision :=
    Posterior
    ∧ LossFunction
    → Action

ExpectedPosteriorLoss :=
    E[
        Loss(Action,θ)
        | Evidence
    ]

BayesAction :=
    argmin_Action
    ExpectedPosteriorLoss

DiagnosticTesting :=
    Hypothesis
    ∧ TestResult
    → PosteriorProbability

Prevalence :=
    P(DiseaseOrCondition)

Sensitivity :=
    P(TestPositive|Condition)

Specificity :=
    P(TestNegative|NoCondition)

FalsePositiveRate :=
    1-Specificity

PositivePredictiveValue :=
    P(Condition|TestPositive)

DiagnosticBayes :=
    P(Condition|Positive)
    =
    Sensitivity×Prevalence
    /
    [
        Sensitivity×Prevalence
        +
        FalsePositiveRate×(1-Prevalence)
    ]

NegativePredictiveValue :=
    P(NoCondition|TestNegative)

BaseRate :=
    PriorProbabilityOfHypothesis

BaseRateNeglect :=
    FailureToIncorporate
    PriorProbability
    in posterior reasoning

BayesianNetwork :=
    DirectedAcyclicGraph
    ∧ ConditionalProbabilityDistributions

BayesianNetworkFactorisation :=
    P(X1,...,Xn)
    =
    Π_i P(X_i|Parents(X_i))

BayesianNetworkEvidenceUpdate :=
    ObserveVariables
    → ConditionJointDistribution
    → ComputePosteriorMarginals

BayesianInference :=
    Prior
    ∧ Likelihood
    ∧ Evidence
    → Posterior

ExactBayesianInference := {
    Enumeration,
    VariableElimination,
    JunctionTree,
    ExactMessagePassing
}

ApproximateBayesianInference := {
    MonteCarlo,
    MCMC,
    ImportanceSampling,
    SequentialMonteCarlo,
    VariationalInference
}

MonteCarloPosteriorApproximation :=
    Samples
    approximating
    PosteriorDistribution

ImportanceWeight :=
    TargetDensity/ProposalDensity

MCMC :=
    MarkovChain
    with
    target stationary distribution
    equal_to posterior
    under algorithm conditions

PosteriorUncertainty :=
    Distribution
    over hypotheses_or_parameters
    after evidence

CredibleInterval :=
    Interval C
    such_that
    PosteriorProbability(θ∈C)
    =
    specified level
    under chosen construction

MAPEstimate :=
    argmax_θ p(θ|Data)

PosteriorMean :=
    E[θ|Data]

PosteriorMedian :=
    Median(PosteriorDistribution)

MaximumLikelihoodEstimate :=
    argmax_θ p(Data|θ)

MAPVsMLE :=
    MAP
    includes prior
    while
    MLE
    uses likelihood only

PriorSensitivity :=
    Posterior
    may_change
    under alternative priors

LikelihoodSensitivity :=
    Posterior
    may_change
    under alternative likelihood models

ModelEvidence :=
    P(Data|Model)

BayesianModelComparison :=
    PriorModelProbabilities
    ∧ ModelEvidence
    → PosteriorModelProbabilities

PosteriorModelProbability :=
    P(M_i|Data)
    =
    P(Data|M_i)P(M_i)
    /
    Σ_j P(Data|M_j)P(M_j)

BayesianModelAveraging :=
    Predictions
    weighted_by
    PosteriorModelProbabilities

ZeroEvidenceProbability :=
    P(E)=0
    ⇒
    ElementaryBayesRatioUndefined

ZeroPrior :=
    P(H)=0
    ⇒
    P(H|E)=0
    under ordinary conditioning with P(E)>0

CertainPrior :=
    P(H)=1
    ⇒
    P(H|E)=1
    under compatible ordinary conditioning

BayesianConstraint :=
    Prior
    ∧ Likelihood
    ∧ Evidence
    must be probabilistically coherent

BayesianConsistency :=
    Priors
    ∧ Likelihoods
    ∧ EvidenceProbabilities
    ∧ Posteriors
    satisfy
    BayesRelations

BayesConflict :=
    ClaimedPosterior
    ≠
    NormalisedPriorTimesLikelihood

EvidenceNormalisationConflict :=
    P(E)
    ≠
    Σ_i P(E|H_i)P(H_i)

PosteriorNormalisationConflict :=
    Σ_i P(H_i|E)
    ≠ 1

BayesValidation :=
    ResolveHypotheses
    → ResolvePrior
    → ResolveLikelihood
    → ComputeEvidence
    → ComputePosterior
    → ValidateNormalisation

BayesState := {
    Hypotheses,
    PriorDistribution,
    Evidence,
    Likelihoods,
    MarginalLikelihood,
    PosteriorDistribution,
    BayesFactors,
    PredictiveDistribution,
    Confidence,
    Provenance
}

BayesianUpdateModel :=
    NewEvidence
    → UpdateLikelihoodContribution
    → RecomputeMarginalLikelihood
    → RecomputePosterior
    → RecomputePredictions

SEMANTIC_EQUIVALENCE(BayesExpressionA,BayesExpressionB) :=
    same(HypothesisSemantics)
    ∧ same(EvidenceSemantics)
    ∧ same(PriorLikelihoodPosteriorRelation)
    under same probability model

BayesTheoremOntology :=
    Classes
    ∧ Relations
    ∧ Constraints
    ∧ Axioms
    ∧ InferenceRules

CoreClasses := {
    BayesTheorem,
    ProbabilitySpace,
    Hypothesis,
    Evidence,
    PriorProbability,
    Likelihood,
    MarginalLikelihood,
    PosteriorProbability,
    PriorDistribution,
    PosteriorDistribution,
    BayesFactor,
    LikelihoodRatio,
    PredictiveDistribution,
    BayesianNetwork,
    BayesianModel,
    BayesianDecision,
    BayesianConstraint
}

CoreRelations := {
    hasPrior,
    hasLikelihood,
    conditionedOn,
    updatesTo,
    hasPosterior,
    hasEvidence,
    normalisedBy,
    compares,
    predicts,
    dependsOn,
    supports,
    contradicts,
    equivalentTo,
    tracesTo
}

TypedRelations :=
    Hypothesis --hasPrior--> PriorProbability
    Evidence --hasLikelihood--> Likelihood
    PosteriorProbability --conditionedOn--> Evidence
    PriorDistribution --updatesTo--> PosteriorDistribution
    Hypothesis --hasPosterior--> PosteriorProbability
    BayesUpdate --normalisedBy--> MarginalLikelihood
    BayesFactor --compares--> HypothesisPair
    PosteriorDistribution --predicts--> PredictiveDistribution
    BayesResult --tracesTo--> Provenance

InferenceRules := {
    P(E)>0
        ⇒ P(H|E)=P(E|H)P(H)/P(E),

    Partition({H_i})
        ⇒ P(E)=Σ_i P(E|H_i)P(H_i),

    P(E)>0
        ⇒ Σ_i P(H_i|E)=1
        for exhaustive mutually exclusive hypotheses,

    Prior(H)
        ∧ Likelihood(E|H)
        ⇒ UnnormalisedPosterior(H)=P(E|H)P(H),

    PosteriorOdds
        =
        PriorOdds×LikelihoodRatio,

    ConditionalIndependent(E1,...,En|H)
        ⇒
        P(E1,...,En|H)=Π_iP(E_i|H),

    NewEvidence(E)
        ⇒ PosteriorPrevious
           becomes
           PriorForNextUpdate,

    P(E)=0
        ⇒ ElementaryBayesRatio(H|E)
           is Undefined
}

CanonicalBayesRepresentation :=
    ParseBayesQuery
    → ResolveHypotheses
    → ResolveEvidence
    → ResolvePrior
    → ResolveLikelihood
    → ComputeMarginalLikelihood
    → ComputePosterior
    → Normalise
    → ValidateBayesianConsistency

BayesGraph :=
    G=(V,E)

V := {
    Hypotheses,
    EvidenceNodes,
    Priors,
    Likelihoods,
    MarginalLikelihoods,
    Posteriors,
    BayesFactors,
    PredictiveDistributions,
    Models,
    Decisions,
    ProvenanceNodes
}

E := {
    hasPrior,
    hasLikelihood,
    conditionedOn,
    updatesTo,
    hasPosterior,
    hasEvidence,
    normalisedBy,
    compares,
    predicts,
    dependsOn,
    supports,
    contradicts,
    equivalentTo,
    tracesTo
}

CONFIDENCE(BayesianInferenceResult) :=
    weighted_mean(
        HypothesisResolution,
        EvidenceResolution,
        PriorQuality,
        LikelihoodQuality,
        ModelAdequacy,
        NormalisationValidity,
        SensitivityRobustness,
        ProvenanceQuality
    )

AI_QUERY_INTERPRETATION :=
    Query
    → DetectBayesianIntent
    → IdentifyHypothesisOrParameter
    → IdentifyEvidence
    → ResolvePriorInformation
    → ResolveLikelihoodModel
    → IdentifyRequestedPosteriorOrPredictiveQuantity

AI_REASONING_FLOW :=
    Query
    → ParseBayesianProblem
    → ResolveProbabilitySpace
    → ResolveHypothesesOrParameters
    → ResolvePriorDistribution
    → ResolveObservedEvidence
    → ResolveLikelihood
    → ComputeUnnormalisedPosterior
    → ComputeMarginalLikelihood
    → NormalisePosterior
    → ComputeBayesFactorOrOddsIfRequired
    → ComputePosteriorPredictiveIfRequired
    → ValidateProbabilityConsistency
    → EvaluatePriorAndLikelihoodSensitivityIfRelevant
    → UpdateConfidence
    → PreserveProvenance
    → GenerateExplanation

AI_CONSUMPTION := {
    ParseBayesEntities,
    ParseTypedRelations,
    ResolveHypotheses,
    ResolveEvidence,
    ResolvePriors,
    ResolveLikelihoods,
    ApplyBayesTheorem,
    ApplyTotalProbability,
    ComputeMarginalLikelihood,
    ComputePosteriorDistribution,
    ComputeBayesFactors,
    ComputePosteriorOdds,
    PerformSequentialBayesianUpdates,
    ComputePosteriorPredictive,
    ValidateBayesianModels,
    CompareSemanticEquivalence,
    UpdateConfidence,
    PreserveProvenance,
    GenerateFormalExplanation
}

UPDATE_MODEL :=
    NewEvidencePriorLikelihoodOrModel
    → ValidateInput
    → IdentifyAffectedBayesianClaims
    → UpdateBayesState
    → RecomputeMarginalLikelihood
    → RecomputePosterior
    → RecomputeBayesFactors
    → RecomputePredictiveDistribution
    → RevalidateConsistency
    → RecomputeConfidence
    → PreserveProvenance
    → VersionModel

EvidenceUpdate :=
    NewEvidence
    ⇒ sequentially_update(
        PosteriorDistribution,
        PredictiveDistribution
    )

PriorUpdate :=
    ChangedPrior
    ⇒ recompute(
        Posterior,
        BayesFactorsWhereRelevant,
        Predictions
    )

LikelihoodUpdate :=
    ChangedLikelihoodModel
    ⇒ recompute(
        MarginalLikelihood,
        Posterior,
        PredictiveDistribution
    )

FLOW_HASH_INPUT :=
    canonical(
        ONTOLOGY,
        CoreClasses,
        CoreRelations,
        InferenceRules,
        BayesTheoremSimple,
        BayesTheoremPartitionForm,
        BayesOddsForm,
        BayesianUpdate,
        SEMANTIC_EQUIVALENCE,
        AI_REASONING_FLOW
    )

FLOW_HASH :=
    HASH(FLOW_HASH_INPUT)

OUTPUT_MODEL := {
    BayesTheoremEntityResolution,
    ProbabilitySpace,
    HypothesesOrParameters,
    PriorDistribution,
    Evidence,
    Likelihood,
    MarginalLikelihood,
    PosteriorDistribution,
    BayesFactor,
    PosteriorOdds,
    PredictiveDistribution,
    BayesianConsistency,
    Confidence,
    Provenance,
    Explanation
}

END_FLOW

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