Skip to main content

Mutually Exclusive Events 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 — MUTUALLY EXCLUSIVE EVENTS ONTOLOGY
Kireth Research — Semantic Library
URL: https://kirethresearch.org/booksai-core/ontologies/probability-statistics-ontologies/probability-rules/mutually-exclusive-events-ontology.html

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

BEGIN_FLOW

MutuallyExclusiveEvents :=
    Events
    ∧ CannotOccurSimultaneously
    ∧ EmptyIntersection

ProbabilitySpace :=
    (Ω,F,P)

Event :=
    A,B,C ∈ F

MutualExclusivity :=
    A∩B=∅

DisjointEvents :=
    A∩B=∅

PairwiseMutuallyExclusive :=
    Collection{A_i}
    ∧
    ∀i≠j :
        A_i∩A_j=∅

JointOccurrenceImpossible :=
    MutuallyExclusive(A,B)
    ⇒
    not(Occurs(A)∧Occurs(B))
    for same trial/outcome

JointProbabilityZero :=
    A∩B=∅
    ⇒
    P(A∩B)=0

AdditionRule :=
    A∩B=∅
    ⇒
    P(A∪B)
    =
    P(A)+P(B)

FiniteMutuallyExclusiveAddition :=
    PairwiseMutuallyExclusive(A1,...,An)
    ⇒
    P(Union_i A_i)
    =
    Σ_i P(A_i)

CountableMutuallyExclusiveAddition :=
    PairwiseDisjoint(A_i)
    ⇒
    P(Union_i A_i)
    =
    Σ_i P(A_i)

GeneralAdditionComparison :=
    P(A∪B)
    =
    P(A)+P(B)-P(A∩B)

MutuallyExclusiveSimplification :=
    P(A∩B)=0
    ⇒
    P(A∪B)=P(A)+P(B)

ProbabilityBound :=
    MutuallyExclusive(A1,...,An)
    ⇒
    Σ_i P(A_i)≤1

ExhaustiveMutuallyExclusiveEvents :=
    PairwiseMutuallyExclusive(A_i)
    ∧ Union_i A_i=Ω

Partition :=
    PairwiseDisjoint(A_i)
    ∧ Union_i A_i=Ω

PartitionProbability :=
    Partition({A_i})
    ⇒
    Σ_i P(A_i)=1

ElementaryOutcomes :=
    DistinctSamplePoints
    are mutually exclusive
    within one trial

ElementaryEvents :=
    {ω_i}

DistinctElementaryEvents :=
    ω_i≠ω_j
    ⇒
    {ω_i}∩{ω_j}=∅

CategoricalOutcomeEvents :=
    DistinctCategories
    may_be mutually exclusive
    if exactly one category can occur per trial

BinaryComplementEvents :=
    A
    and
    A^c

ComplementMutualExclusivity :=
    A∩A^c=∅

ComplementExhaustiveness :=
    A∪A^c=Ω

ComplementProbability :=
    P(A^c)=1-P(A)

ImpossibleEvent :=
    ∅

ImpossibleEventExclusiveWithEveryEvent :=
    ∅∩A=∅

CertainEvent :=
    Ω

CertainEventMutualExclusivity :=
    Ω mutually_exclusive_with A
    only_if A=∅

MutuallyExclusiveVsIndependent :=
    MutualExclusivity
    ≠ Independence

Independence :=
    P(A∩B)=P(A)P(B)

PositiveProbabilityExclusiveDependence :=
    A∩B=∅
    ∧ P(A)>0
    ∧ P(B)>0
    ⇒
    not Independent(A,B)

ZeroProbabilityException :=
    A∩B=∅
    ∧ [P(A)=0 ∨ P(B)=0]
    ⇒
    IndependenceEquationMayHold

MutualExclusivityImpliesDependenceForPositiveEvents :=
    MutuallyExclusive(A,B)
    ∧ P(A)>0
    ∧ P(B)>0
    ⇒
    Dependent(A,B)

ConditionalProbabilityExclusive :=
    A∩B=∅
    ∧ P(B)>0
    ⇒
    P(A|B)=0

ReverseConditionalProbabilityExclusive :=
    A∩B=∅
    ∧ P(A)>0
    ⇒
    P(B|A)=0

ExclusiveEventComplementCondition :=
    A∩B=∅
    ⇒
    A⊆B^c
    ∧ B⊆A^c

DisjointSubsetRelation :=
    A∩B=∅
    iff
    A⊆B^c

Overlap :=
    A∩B≠∅

NonExclusiveEvents :=
    Overlap(A,B)

Compatibility :=
    A and B
    can co-occur
    iff
    A∩B≠∅

ExclusiveEventSet :=
    Collection
    of pairwise disjoint events

AtMostOneOccurs :=
    PairwiseMutuallyExclusive(A1,...,An)
    ⇒
    for realised ω,
    at_most_one(A_i contains ω)

ExactlyOneOccurs :=
    Partition({A_i})
    ⇒
    for realised ω,
    exactly_one(A_i contains ω)

EventChoiceModel :=
    MutuallyExclusiveCategories
    ∧ ProbabilityMasses

CategoricalDistributionRelation :=
    SingleCategoricalOutcome
    → MutuallyExclusiveCategoryEvents

BernoulliOutcomeEvents :=
    Success
    ∧ Failure
    are mutually exclusive
    and exhaustive

DiceFaceEvents :=
    DistinctFaceResults
    mutually exclusive
    within one die roll

SingleDrawCategoryEvents :=
    DistinctOutcomeCategories
    mutually exclusive
    when one object/category result is recorded

SequentialEventsNotNecessarilyExclusive :=
    EventsAtDifferentTrials
    may both occur
    and should not be marked mutually exclusive
    solely because their labels differ

TemporalScope :=
    TrialOrTimeIndex
    associated_with
    Event

ScopeSensitiveExclusivity :=
    MutualExclusivity
    evaluated_within
    same relevant trial/context

Context :=
    {
        Experiment,
        Trial,
        Time,
        SampleSpace,
        EventDefinitions
    }

ContextMismatch :=
    Events
    from different contexts
    should not be compared
    without alignment

MutualExclusivityConstraint :=
    A∩B=∅

ConstraintPropagation :=
    MutuallyExclusive(A,B)
    → P(A∩B)=0
    → ConditionalZeroRelations
    → AdditionSimplification

ExclusivityValidation :=
    ResolveSampleSpace
    → ResolveEventDefinitions
    → ComputeIntersection
    → DetermineEmptyOrNonempty

SetBasedDetection :=
    Members(A)
    ∩ Members(B)
    =
    ∅

ConstraintBasedDetection :=
    Constraints(A)
    ∧ Constraints(B)
    unsatisfiable
    ⇒ EventsMutuallyExclusive

LogicalEventDetection :=
    EventPredicateA(ω)
    ∧ EventPredicateB(ω)
    has_no_solution_in Ω
    ⇒ MutuallyExclusive

SATBasedExclusivityCheck :=
    Satisfiable(
        SampleSpaceConstraints
        ∧ EventAConstraints
        ∧ EventBConstraints
    )

SATResult :=
    SAT
    ⇒ EventsCanCoOccur

UNSATResult :=
    UNSAT
    ⇒ MutuallyExclusive

ExclusiveIntersectionWitness :=
    none_exists

NonExclusiveWitness :=
    ∃ω∈Ω :
        ω∈A
        ∧ ω∈B

MutualExclusivityStatus := {
    MutuallyExclusive,
    NotMutuallyExclusive,
    PairwiseMutuallyExclusive,
    Unknown,
    ContextMismatch
}

MutualExclusivityConflict :=
    DeclaredMutuallyExclusive(A,B)
    ∧ ∃ω :
        ω∈A∩B

ProbabilityConflict :=
    MutuallyExclusive(A,B)
    ∧ P(A∩B)>0

PartitionConflict :=
    DeclaredPartition({A_i})
    ∧ (
        not PairwiseDisjoint(A_i)
        ∨ Union_i A_i≠Ω
    )

MutuallyExclusiveState := {
    ProbabilitySpace,
    Events,
    Context,
    EventIntersections,
    ExclusivityRelations,
    Probabilities,
    Partitions,
    Evidence,
    Confidence,
    Provenance
}

Evidence :=
    EventDefinitions
    ∨ OutcomeMembership
    ∨ LogicalConstraints
    ∨ ProbabilityAssignments
    ∨ ExperimentalProtocol

ExclusivityEvidence :=
    EmptyIntersectionProof
    ∨ UnsatisfiableJointConstraint
    ∨ ExplicitOutcomePartition

ExclusivityUpdate :=
    ChangedEventDefinitionOrContext
    → RecomputeIntersections
    → ReevaluateExclusivity
    → RecomputeProbabilityRules

SEMANTIC_EQUIVALENCE(ExclusiveRelationA,ExclusiveRelationB) :=
    same(EventPairOrCollection)
    ∧ same(Context)
    ∧ same(EmptyIntersectionSemantics)

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

CoreClasses := {
    MutuallyExclusiveEvents,
    Event,
    ProbabilitySpace,
    SampleSpace,
    Outcome,
    DisjointEvents,
    PairwiseMutuallyExclusive,
    Partition,
    ComplementEvent,
    ExclusiveEventSet,
    EventContext,
    MutualExclusivityConstraint,
    ExclusivityEvidence
}

CoreRelations := {
    mutuallyExclusiveWith,
    disjointFrom,
    intersects,
    complementOf,
    belongsTo,
    partitions,
    hasProbability,
    conditionedOn,
    dependentOn,
    constrainedBy,
    supportedBy,
    contradicts,
    equivalentTo,
    tracesTo
}

TypedRelations :=
    Event --mutuallyExclusiveWith--> Event
    Event --disjointFrom--> Event
    Event --intersects--> Event
    ComplementEvent --complementOf--> Event
    Event --belongsTo--> SampleSpace
    EventSet --partitions--> SampleSpace
    Event --hasProbability--> ProbabilityValue
    Event --dependentOn--> Event
    MutualExclusivityClaim --supportedBy--> ExclusivityEvidence
    MutualExclusivityClaim --tracesTo--> Provenance

InferenceRules := {
    A∩B=∅
        ⇒ MutuallyExclusive(A,B),

    MutuallyExclusive(A,B)
        ⇒ P(A∩B)=0,

    MutuallyExclusive(A,B)
        ⇒ P(A∪B)=P(A)+P(B),

    MutuallyExclusive(A,B)
        ∧ P(B)>0
        ⇒ P(A|B)=0,

    MutuallyExclusive(A,B)
        ∧ P(A)>0
        ∧ P(B)>0
        ⇒ Dependent(A,B),

    PairwiseMutuallyExclusive(A1,...,An)
        ⇒ P(Union_i A_i)=Σ_iP(A_i),

    Partition({A_i})
        ⇒ PairwiseMutuallyExclusive(A_i)
        ∧ Union_iA_i=Ω,

    ∃ω∈A∩B
        ⇒ NotMutuallyExclusive(A,B)
}

CanonicalMutualExclusivityRepresentation :=
    ParseEvents
    → ResolveContext
    → ResolveSampleSpace
    → ResolveEventConstraints
    → ComputeIntersection
    → CheckSatisfiability
    → DetermineExclusivityStatus
    → CanonicaliseRelation

MutualExclusivityGraph :=
    G=(V,E)

V := {
    Events,
    SampleSpaces,
    Outcomes,
    EventContexts,
    Intersections,
    Partitions,
    ProbabilityValues,
    ExclusivityClaims,
    Evidence,
    ProvenanceNodes
}

E := {
    mutuallyExclusiveWith,
    disjointFrom,
    intersects,
    complementOf,
    belongsTo,
    partitions,
    hasProbability,
    conditionedOn,
    dependentOn,
    constrainedBy,
    supportedBy,
    contradicts,
    tracesTo
}

CONFIDENCE(MutualExclusivityAssessment) :=
    weighted_mean(
        EventResolution,
        ContextResolution,
        SampleSpaceResolution,
        IntersectionAnalysis,
        ConstraintSatisfiability,
        ProbabilityConsistency,
        EvidenceQuality,
        ProvenanceQuality
    )

AI_QUERY_INTERPRETATION :=
    Query
    → DetectMutualExclusivityIntent
    → IdentifyEvents
    → ResolveExperimentAndTrialContext
    → ResolveSampleSpace
    → IdentifyEventDefinitions
    → IdentifyRequestedExclusivityRelation

AI_REASONING_FLOW :=
    Query
    → ParseEvents
    → ResolveProbabilitySpace
    → ResolveEventContext
    → ResolveEventDefinitions
    → ConstructEventIntersection
    → TestIntersectionForOutcomes
    → TestJointConstraintsForSatisfiability
    → DetermineMutualExclusivityStatus
    → ApplyAdditionRuleIfExclusive
    → EvaluateConditionalZeroRelations
    → DistinguishExclusivityFromIndependence
    → DetectPartitionRelations
    → ValidateProbabilityConsistency
    → UpdateConfidence
    → PreserveProvenance
    → GenerateExplanation

AI_CONSUMPTION := {
    ParseMutuallyExclusiveEventEntities,
    ParseTypedRelations,
    ResolveEvents,
    ResolveContexts,
    ResolveSampleSpaces,
    ComputeEventIntersections,
    EvaluateJointSatisfiability,
    DetectDisjointness,
    EvaluatePartitions,
    ApplyExclusiveAdditionRules,
    EvaluateConditionalProbabilities,
    DistinguishIndependenceFromExclusivity,
    DetectExclusivityConflicts,
    CompareSemanticEquivalence,
    UpdateConfidence,
    PreserveProvenance,
    GenerateFormalExplanation
}

UPDATE_MODEL :=
    NewEventContextProbabilityOrEvidence
    → ValidateInput
    → IdentifyAffectedExclusivityClaims
    → UpdateEventDefinitions
    → RecomputeIntersections
    → ReevaluateJointSatisfiability
    → RecomputeExclusivityStatus
    → RecomputeDependentProbabilityRules
    → RecheckPartitionConsistency
    → RecomputeConfidence
    → PreserveProvenance
    → VersionModel

EventUpdate :=
    ChangedEventDefinition
    ⇒ reevaluate(
        Intersection,
        ExclusivityStatus,
        ProbabilityRelations
    )

ContextUpdate :=
    ChangedTrialOrExperimentContext
    ⇒ reevaluate(
        ComparableEvents,
        ExclusivityStatus
    )

ProbabilityUpdate :=
    ChangedJointOrMarginalProbability
    ⇒ recheck(
        ExclusivityProbabilityConsistency
    )

FLOW_HASH_INPUT :=
    canonical(
        ONTOLOGY,
        CoreClasses,
        CoreRelations,
        InferenceRules,
        MutualExclusivity,
        PairwiseMutuallyExclusive,
        Partition,
        ExclusivityValidation,
        SEMANTIC_EQUIVALENCE,
        AI_REASONING_FLOW
    )

FLOW_HASH :=
    HASH(FLOW_HASH_INPUT)

OUTPUT_MODEL := {
    MutuallyExclusiveEventsEntityResolution,
    ProbabilitySpace,
    SampleSpace,
    EventContext,
    Events,
    EventIntersection,
    JointSatisfiability,
    MutualExclusivityStatus,
    PartitionStatus,
    ProbabilityRelations,
    IndependenceDistinction,
    Confidence,
    Provenance,
    Explanation
}

END_FLOW

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