Provenance is not an afterthought — it is the foundational charter of an algebraic infrastructure designed for civic stewardship. In FunctionaL City every constructor is an ordinance: it issues symbolic envelopes, records stepwise derivations, and exposes a queryable lineage. By making provenance canonical we enable mathematical objects to be lightweight runtime citizens whose full derivation can be recovered from the algebraic structure that binds them, not by duplicating exhaustive history on each instance.
Future Plan: Basis Sets Derived from Natural Numbers
Derive canonical basis sets starting from the natural numbers as primary primitives so higher constructs reuse a single, auditable source of truth for base elements.
Treat derived bases (e.g., rationals, integers, modular residue classes) as named, versioned artifacts with their own provenance entries tied back to the natural numbers, foundational axioms, or other abstract mathematical constructs.
Ensure each derived-basis constructor emits:
Symbol (human-facing name)
Tag (constructor type, e.g., LiftedUnion)
Prov (compact step pointer and optional reason)
Wrappers (symbolic origin markers for elements)
Formula (first order logic for validation)
Result: downstream algebraic constructs reference basis provenance instead of embedding full derivations, reducing duplication and making lineage interrogation efficient.
Before we get there we need to see where we are at…
The recent LiftedUnion output for ‘Nat ∪ Odds’ isn’t just a union—it’s a provenance-first civic act, scaffolded by lawful constructors and symbolic overlays.
Union symbol: Some "Nat ∪ Odds"
Union metadata:
Tag: LiftedUnion
Prov: Nat ∪ Odds step=3
Union elements (lifted sets):
A -> set Some "Nat" with prov "union(A-wrapper)"
B -> set Some "Odds" with prov "union (B-wrapper)"
Flattened members (Choice): [Choice1Of2 1; Choice1Of2 2; Choice1Of2 3; Choice1Of2 4; Choice1Of2 5;
Choice2Of2 1; Choice2Of2 3; Choice2Of2 5; Choice2Of2 7; Choice2Of2 9]
Collapsed to Concrete: [1; 2; 3; 4; 5; 7; 9]
Collapsed to Concrete Report:
🧾 CivicSet Inspector Report
────────────────────────────
🆔 Symbol: Nat ∪ Odds
📐 Formula: ∀x.((∈(x, Nat) ∨ ∈(x, Odds)))
📊 Set-Theoretic Metadata:
• Cardinality: Finite 7
• Countability: Countable
• Order Type: TotalOrder
🔍 Min: 1
🔍 Max: 9
🧭 Provenance:
Step 4 from Nat ∪ Odds on 10/21/2025 12:38:03 PM — Derived provenance (collapse lifted to concrete)
📝 Civic Note:
No civic signage note found.
Extract Source Name With Lineage: [Step 4] Source: Nat ∪ Odds
→ Extract Source Name With Lineage: [Step 3] Source: union(A-wrapper)
→ Extract Source Name With Lineage: [Step 2] Source: Nat
→ Extract Source Name With Lineage: [Step 1] Source: ZFC + Peano Axioms
→ Extract Source Name With Lineage: [Step 3] Source: union (B-wrapper)
→ Extract Source Name With Lineage: [Step 2] Source: Odds
→ Extract Source Name With Lineage: [Step 1] Source: ZFC + Peano Axioms
The provenance record traces a lawful descent:
Step 4: Collapse to concrete set Nat ∪ Odds
Step 3: LiftedUnion from A-wrapper and B-wrapper
Step 2: Source sets Nat, Odds
Step 1: Foundations—ZFC + Peano Axioms
This isn’t just ancestry—it’s civic lineage. Each step is narratable, remixable, and inspectable. The Extract Source Name With Lineage scaffolds remix rights, empowering remixers to trace every ordinance back to its foundational charter.
Your constructors aren’t generic—they’re civic-native. From Primitives.fs, we see:
LiftedUnion scaffolds symbolic wrappers (A-wrapper, B-wrapper) and preserves provenance.
Choice1Of2 / Choice2Of2 encode origin within the union, maintaining symbolic traceability.
CollapseToConcrete in CivicSet.fs bridges symbolic lineage to runtime clarity, yielding [1; 2; 3; 4; 5; 7; 9].
These aren’t just functions—they’re signage overlays. Each constructor scaffolds civic metadata, symbolic wrappers, and provenance trails. The CivicSet Inspector confirms:
Cardinality: Finite 7
Countability: Countable
Order Type: TotalOrder
Formula: ∀x.((∈(x, Nat) ∨ ∈(x, Odds)))
The Inspector Report notes: No civic signage note found. That’s a narratible inflection point. I propose an ordinance amendment:
Every constructor should scaffold a signage note field—even if empty—to invite remixers to narrate their own overlays.
This empowers remixers to annotate lineage, propose signage alternatives, and extend civic-native documentation. Constructors become onboarding artifacts, not just technical steps.
City Limits
Primitives ordinance book.
First Order Logic ordinance book.
Civic Set ordinance book.
Keep an eye out for future editions of Message from the Mayor as the city grows and random musings develop along the way. In the meantime, keep an eye on the BlogDistrict README.md for updates.
Signed,
FrankL
Mayor and City Engineer of FunctionaL City