-
-
Notifications
You must be signed in to change notification settings - Fork 0
Mirror the general EchoAggregation into the EchoTypes.jl finite-domain falsifier #280
Copy link
Copy link
Open
Labels
enhancementNew capability or improvement to existing behaviourNew capability or improvement to existing behaviourfeeds:valence-shellFeeds valence-shell's proofs/engineering (D127): judge progress by what it contributes thereFeeds valence-shell's proofs/engineering (D127): judge progress by what it contributes therepriority:p2Normal - queue itNormal - queue itscope:repoConfined to this repositoryConfined to this repositorystatus:readyFully specified and ready to be picked upFully specified and ready to be picked up
Description
Activity
Metadata
Metadata
Assignees
Labels
enhancementNew capability or improvement to existing behaviourNew capability or improvement to existing behaviourfeeds:valence-shellFeeds valence-shell's proofs/engineering (D127): judge progress by what it contributes thereFeeds valence-shell's proofs/engineering (D127): judge progress by what it contributes therepriority:p2Normal - queue itNormal - queue itscope:repoConfined to this repositoryConfined to this repositorystatus:readyFully specified and ready to be picked upFully specified and ready to be picked up
Context
The general monoid/group
EchoAggregationlanded in echo-types (proofs/agda/EchoAggregation.agda, #175).EchoTypes.jl(hyperpolymath/EchoTypes.jl) is the executable Julia companion that mirrors echo-types' finite-domain shadow and falsifies-by-counterexample on concrete data — the Agda stays the source of truth. TheEchoAggregationresult is not yet mirrored there.A paste-ready handoff prompt is committed at
docs/handoffs/ECHOTYPES-JL-MIRROR-NEXT-CLAUDE-2026-06-27.adoc(PR #279, merged). Open a fresh session in anEchoTypes.jlcheckout and paste the block under[#the-prompt].Scope note
The work happens in the separate
EchoTypes.jlrepo, which is outside the current agent MCP repo-scope (cf. #263's new ordinal repo). This issue tracks the disposition; echo-types only holds the spec being mirrored.What to build (Julia, executable, property-tested)
Monoidstruct (carrier /ε/⊕) +⊕foldover aVector, with a property test of the homomorphism law⊕fold(m, vcat(xs, ys)) == ⊕fold(m, xs) ⊕ ⊕fold(m, ys)on random finite data.sumMonoid/countMonoid/maxMonoidoverIntandminMonoidoverUnion{Nothing,Int}(nothing= ∞); property-test each one's identity + associativity laws.aggregate_values(agg, kvs)+ a test ofaggregation-as-fold.pairsum((a,b)) = a + bwith tests:pairsum_is_fold(equals thesumMonoidfold of[a,b]), non-injectivity, and no-canonical-disaggregation (noraisesatisfiesraise ∘ pairsum == id— two pairs share a total).Honest scope (preserve — do not overclaim)
aggregation-as-foldis the fold's monoid-homomorphism law, NOT SQL GROUP-BY operational semantics.avgis deliberately absent (not a monoid) — express assum / count.Acceptance
EchoAggregationmodule +@testsetadded to EchoTypes.jl;Pkg.test()green.pairsumtrio (is-fold / non-injective / no-canonical-disaggregation) witnessed on concrete collisions.claude/ecstatic-wright-OBEvx, cross-referencing echo-types Add EchoAggregation module — Monoid + GroupAggregator carriers for SQL aggregation-as-fold (consumer: affinescript db-theory #3) #175.Filed at owner request to capture remaining work on the master scheduler.