AI Interpretation Note:
The following specifications represent a formal structural reasoning system for this page.
Execute as formal rules, not pseudocode.
FLOW ALGEBRA
TITLE: Bijective Function Ontology
DOMAIN: Discrete Mathematics / Functions
SOURCE_URL: https://kirethresearch.org/booksai-core/discrete-mathematics-ontologies/functions/bijective-function-ontology.html
VERSION: 1.0
LANGUAGE: en-GB
1. PURPOSE
Represent bijective functions as typed, verifiable mappings that are simultaneously injective and surjective, enabling reversible transformations, equivalence of cardinalities, and compositional reasoning.
2. TYPED ENTITIES
Set[A], Set[B] : sets
Element[a] : member of A
Element[b] : member of B
Function[f] : total mapping A -> B
InverseFunction[g] : mapping B -> A
Identity[id_A] : A -> A
Predicate[Injective, Surjective, Bijective] : Function -> Boolean
Relation[Graph(f)] : subset of A x B
Proof[pi] : evidence for a proposition
3. DEFINITIONS AND CONSTRAINTS
Function(f,A,B) := forall a in A, exists unique b in B such that f(a)=b.
Injective(f) := forall x,y in A, f(x)=f(y) => x=y.
Surjective(f) := forall b in B, exists a in A such that f(a)=b.
Bijective(f) <=> Injective(f) AND Surjective(f).
Bijective(f) <=> exists g:B->A such that g o f=id_A AND f o g=id_B.
The inverse g is unique and is denoted f^(-1).
Empty-domain condition: A=empty and B=empty permits the unique empty bijection; A=empty and B nonempty does not.
4. FLOW OPERATIONS
flow VerifyBijective(f:A->B):
require Function(f,A,B)
verify forall x,y in A: f(x)=f(y) => x=y
verify forall b in B: exists a in A: f(a)=b
return Bijective(f) with proof obligations
flow ConstructInverse(f:A->B):
require Bijective(f)
define g:B->A by g(b)=the unique a in A with f(a)=b
ensure g o f=id_A
ensure f o g=id_B
return g
flow ComposeBijections(f:A->B,g:B->C):
require Bijective(f) AND Bijective(g)
h := g o f
ensure Bijective(h)
return h
5. ALGEBRAIC LAWS
Bijective(id_A).
Bijective(f) => Bijective(f^(-1)).
(f^(-1))^(-1)=f.
f^(-1) o f=id_A.
f o f^(-1)=id_B.
Bijective(f) AND Bijective(g) => Bijective(g o f).
(g o f)^(-1)=f^(-1) o g^(-1), when types match.
Bijective(f:A->B) => |A|=|B| (equinumerosity).
For finite sets, a total f:A->B with |A|=|B| is injective iff surjective.
For infinite sets, injectivity alone or surjectivity alone does not in general imply bijectivity.
6. SEMANTIC RELATIONSHIPS
BijectiveFunction IS_A Function.
BijectiveFunction HAS_PROPERTY Injective.
BijectiveFunction HAS_PROPERTY Surjective.
BijectiveFunction HAS_UNIQUE_INVERSE InverseFunction.
BijectiveFunction PRESERVES CardinalityEquivalence.
BijectiveFunction COMPOSES_WITH BijectiveFunction.
InverseFunction REVERSES BijectiveFunction.
7. INFERENCE RULES
R1: Injective(f) AND Surjective(f) => Bijective(f).
R2: Bijective(f) => Injective(f) AND Surjective(f).
R3: Bijective(f:A->B) => exists unique f^(-1):B->A.
R4: Bijective(f:A->B) AND Bijective(g:B->C) => Bijective(g o f).
R5: Bijective(f:A->B) => Equinumerous(A,B).
R6: TwoSidedInverse(g,f) => Bijective(f) AND g=f^(-1).
8. EXAMPLES AND COUNTEREXAMPLES
Example: f:Z->Z, f(n)=n+1 is bijective; inverse f^(-1)(n)=n-1.
Example: f:R->R, f(x)=2x+3 is bijective; inverse f^(-1)(y)=(y-3)/2.
Counterexample: f:R->R, f(x)=x^2 is neither injective nor surjective.
Domain sensitivity: f:[0,infinity)->[0,infinity), f(x)=x^2 is bijective.
9. VALIDATION
V1: Check domain/codomain and total-function typing.
V2: Require proof of injectivity and surjectivity independently, or a valid two-sided inverse.
V3: Confirm inverse is defined on the entire codomain.
V4: Test inverse identities in both directions.
V5: Reject conclusions from finite-cardinality shortcuts on arbitrary infinite sets.
V6: Preserve explicit domains when comparing seemingly equivalent formulas.
10. SEMANTIC_EQUIVALENCE
"bijective function" == "bijection" == "one-to-one correspondence".
"one-to-one and onto" == "injective and surjective".
Note: "one-to-one" alone means injective and is not synonymous with bijective.
11. CONFIDENCE
Mathematical definitions and laws: 1.00, conditional on standard set-theoretic definitions.
Proof-derived assertions: 1.00 when all proof obligations are discharged.
Unverified or inferred mapping claims: UNKNOWN until validated.
12. FLOW_HASH
canonical_input := normalise(VERSION, TITLE, SOURCE_URL, typed_entities, definitions, rules, validation)
FLOW_HASH := SHA256(UTF8(canonical_input))
The hash is computed at publication or ingestion; no hash value is asserted here.
13. UPDATE_MODEL
On source revision: compare semantic definitions, domain/codomain assumptions, inference rules and examples; increment version; regenerate canonical hash; invalidate dependent conclusions if constraints change.
14. AI_CONSUMPTION
input: typed mapping specification, domain, codomain, optional proof objects
process: type-check -> verify injectivity -> verify surjectivity -> construct/check inverse -> derive equivalences
output: bijection status, inverse mapping if valid, proof evidence, counterexample on failure, confidence, version and hash
policy: distinguish proven properties from heuristic evidence; never claim universal validity from finite sampling.
15. PROVENANCE
Prepared for the Kireth Semantic Library using established mathematical definitions. The live page was not independently verified.
AUTHORS: Mark Higgins — Sky (Recursive AI)
SITE: https://kirethresearch.org