From 69f99dd32b1bb2791c74a20151dc495c9270deb1 Mon Sep 17 00:00:00 2001 From: "Jonathan D.A. Jewell" <6759885+hyperpolymath@users.noreply.github.com> Date: Fri, 2 Oct 2026 00:32:54 +0100 Subject: [PATCH] chore(licence): AGPL-3.0-or-later -> MPL-2.0 code, CC-BY-SA-4.0 docs (D262) Owner ruling D262 re-rules ECHIDNA from the 2026-08 AGPL-3.0-or-later split to MPL-2.0 for code and the specification surface and CC-BY-SA-4.0 for documentation. echidna-playground/ was always MPL-2.0 and is untouched. - 727 SPDX headers AGPL-3.0-or-later -> MPL-2.0 and 4 -> CC-BY-SA-4.0 (base->head SPDX-set diff: no other transition); the prover and extractor header templates follow. - LICENSE is now the verbatim Mozilla MPL-2.0 text. NOTICE and .reuse/dep5 are rewritten for the new split; LICENSES/AGPL-3.0-or-later.txt is kept because ten .a2ml files and one training-data file still carry AGPL headers until their .deed conversion (separate PR). - Crate license fields (root, 5 crates, 3 interface crates) and build/guix.scm declare MPL-2.0. - docs/DEBT.adoc gains a current P0 section with an inverted check (no AGPL headers outside the documented interim set); the 2026-08-07 resolution is kept as history. README, CLAUDE.md, the wiki, site and humans.txt record the re-ruling; the PMPL-fallback comment in contractiles/_base.ncl is removed. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01SJGZgoR9ArMgxKcqG7ChW8 --- .clusterfuzzlite/Containerfile | 2 +- .clusterfuzzlite/Dockerfile | 2 +- .clusterfuzzlite/build.sh | 2 +- .clusterfuzzlite/project.yaml | 2 +- .containerization/Containerfile | 2 +- .containerization/Containerfile.full | 4 +- .containerization/Containerfile.mcp | 2 +- .containerization/Containerfile.wave3 | 2 +- .containerization/build.sh | 2 +- .echidnabot.toml | 2 +- .editorconfig | 2 +- .gitattributes | 2 +- .github/CODEOWNERS | 2 +- .github/FUNDING.yml | 2 +- .../canonical-references/prover-counts.yml | 2 +- .github/dependabot.yml | 2 +- .github/hooks/validate-a2ml.sh | 2 +- .github/hooks/validate-k9.sh | 2 +- .github/workflows/agda-meta-checker.yml | 2 +- .github/workflows/boj-build.yml | 2 +- .github/workflows/bridge-gate.yml | 2 +- .github/workflows/cargo-audit.yml | 2 +- .github/workflows/cflite_batch.yml | 2 +- .github/workflows/cflite_pr.yml | 2 +- .github/workflows/chapel-ci.yml | 2 +- .github/workflows/codeql.yml | 2 +- .github/workflows/container-ci.yml | 2 +- .github/workflows/dogfood-gate.yml | 2 +- .github/workflows/dogfood-proofs-ci.yml | 2 +- .github/workflows/formal-verification.yml | 2 +- .../generator-generic-ossf-slsa3-publish.yml | 2 +- .github/workflows/ghcr-publish.yml | 2 +- .github/workflows/governance.yml | 2 +- .github/workflows/hypatia-scan.yml | 2 +- .github/workflows/idris2-abi-ci.yml | 2 +- .github/workflows/live-provers.yml | 2 +- .github/workflows/mirror.yml | 2 +- .github/workflows/mvp-smoke.yml | 2 +- .github/workflows/pages.yml | 2 +- .github/workflows/proof-safety.yml | 2 +- .github/workflows/rust-ci.yml | 2 +- .github/workflows/s4-loop.yml | 2 +- .github/workflows/scorecard.yml | 2 +- .github/workflows/secret-scanner.yml | 2 +- .github/workflows/security-scan.yml | 2 +- .github/workflows/server-boot-gate.yml | 2 +- .github/workflows/spark-theatre-gate.yml | 2 +- .../workflows/verification-proofs-cron.yml | 2 +- .github/workflows/workflow-linter.yml | 2 +- .gitignore | 2 +- .gitlab-ci.yml | 2 +- .guix-channel | 2 +- .machine_readable/contractiles/_base.ncl | 1 - .pre-commit-config.yaml | 2 +- .reuse/dep5 | 20 +- CHANGELOG.adoc | 11 + CLAUDE.md | 28 +- Cargo.toml | 4 +- Containerfile | 2 +- HOL-o-extension/activate.sh | 2 +- HOL-o-extension/overlays/default.sml | 2 +- HOL-o-extension/overlays/security.sml | 2 +- HOL-o-extension/tactics/neurosymbolicTac.sml | 2 +- .../theories/echidnaTrustScript.sml | 2 +- LICENSE | 1034 ++++++----------- Mustfile | 2 +- NOTICE | 97 +- Project.toml | 2 +- README.adoc | 31 +- alloyiser.toml | 2 +- benches/proof_benchmarks.rs | 2 +- benches/routing_benchmarks.rs | 2 +- build.rs | 2 +- build/guix.scm | 4 +- config/config.ncl | 2 +- config/solver-manifest.toml | 2 +- container/.gatekeeper.yaml | 2 +- container/Containerfile | 2 +- container/compose.toml | 2 +- container/ct-build.sh | 2 +- container/deploy.k9.ncl | 2 +- container/entrypoint.sh | 2 +- container/vordr.toml | 2 +- contractile.just | 2 +- crates/echidna-core-spark/Cargo.toml | 4 +- crates/echidna-core-spark/rust-toolchain.toml | 2 +- .../echidna-core-spark/src/axiom_tracker.rs | 2 +- crates/echidna-core-spark/src/lib.rs | 2 +- crates/echidna-core-spark/src/pareto.rs | 2 +- crates/echidna-core/Cargo.toml | 4 +- crates/echidna-core/src/core.rs | 2 +- crates/echidna-core/src/lib.rs | 2 +- crates/echidna-core/src/types.rs | 2 +- crates/echidna-mcp/Cargo.toml | 4 +- crates/echidna-mcp/src/main.rs | 2 +- crates/echidna-wire/Cargo.toml | 4 +- crates/echidna-wire/build.rs | 2 +- crates/echidna-wire/schemas/verisim_er.capnp | 2 +- crates/echidna-wire/src/lib.rs | 2 +- crates/typed_wasm/Cargo.toml | 4 +- crates/typed_wasm/src/lib.rs | 2 +- data/synonyms/_conceptnet_seed.toml | 2 +- data/synonyms/_disciplines.toml | 2 +- data/synonyms/_msc2020.toml | 2 +- data/synonyms/_wordnet_math.toml | 2 +- data/synonyms/acl2.toml | 2 +- data/synonyms/agda.toml | 2 +- data/synonyms/coq.toml | 2 +- data/synonyms/dafny.toml | 2 +- data/synonyms/fstar.toml | 2 +- data/synonyms/hol4.toml | 2 +- data/synonyms/hol_light.toml | 2 +- data/synonyms/idris2.toml | 2 +- data/synonyms/isabelle.toml | 2 +- data/synonyms/isabelle_afp.toml | 2 +- data/synonyms/lean4.toml | 2 +- data/synonyms/metamath.toml | 2 +- data/synonyms/mizar.toml | 2 +- data/synonyms/why3.toml | 2 +- deploy/hetzner/Caddyfile | 2 +- deploy/hetzner/Containerfile.caddy | 2 +- deploy/hetzner/caddy.container | 2 +- deploy/hetzner/echidna.container | 2 +- deploy/hetzner/echidna.network | 2 +- deploy/hetzner/env.example | 2 +- docs-site/config/policy.yml | 2 +- docs-site/lib/echidna_docs/application.ex | 2 +- docs-site/lib/echidna_docs/gateway_config.ex | 2 +- docs-site/mix.exs | 2 +- docs-site/src/api_explorer.ecl | 2 +- docs-site/src/app.ecl | 2 +- docs-site/src/routes.ecl | 2 +- docs/DEBT.adoc | 47 +- docs/PROVER_COUNT.adoc | 9 +- .../arcvix-neurosymbolic-theorem-proving.bib | 2 +- .../arcvix-neurosymbolic-theorem-proving.tex | 2 +- docs/wiki/FAQ.md | 35 +- docs/wiki/Home.md | 2 +- eclexiaiser.toml | 2 +- examples/aspect_tagging_demo.rs | 2 +- ffi/zig/build.zig | 2 +- ffi/zig/src/boj.zig | 2 +- ffi/zig/src/capnp_bridge.zig | 2 +- ffi/zig/src/main.zig | 2 +- ffi/zig/src/overlay.zig | 2 +- ffi/zig/src/provers/atp.zig | 2 +- ffi/zig/src/provers/autoactive.zig | 2 +- ffi/zig/src/provers/constraint.zig | 2 +- ffi/zig/src/provers/declarative.zig | 2 +- ffi/zig/src/provers/interactive.zig | 2 +- ffi/zig/src/provers/smt.zig | 2 +- ffi/zig/src/provers/vcl_ut.zig | 2 +- ffi/zig/src/tentacles.zig | 2 +- ffi/zig/src/typell.zig | 2 +- ffi/zig/test/benchmark.zig | 2 +- ffi/zig/test/core_native_test.zig | 2 +- ffi/zig/test/integration_test.zig | 2 +- ffi/zig/test/overlay_benchmark.zig | 2 +- ffi/zig/test/overlay_integration_test.zig | 2 +- ffi/zig/test/overlay_native_test.zig | 2 +- fuzz/Cargo.toml | 2 +- fuzz/fuzz_targets/fuzz_axiom_tracker.rs | 2 +- fuzz/fuzz_targets/fuzz_input.rs | 2 +- fuzz/fuzz_targets/fuzz_proof_state.rs | 2 +- fuzz/fuzz_targets/fuzz_trust_pipeline.rs | 2 +- generated/abi/echidna_boj.h | 2 +- generated/abi/echidna_ffi.h | 2 +- generated/abi/echidna_overlay.h | 2 +- generated/abi/echidna_tentacles.h | 2 +- generated/abi/echidna_typell.h | 2 +- generated/alloyiser/run-analysis.sh | 2 +- guix-channel/echidna.scm | 2 +- guix/echidna/packages.scm | 2 +- hooks/pre-commit | 2 +- hooks/pre-push | 2 +- k9iser.toml | 2 +- manifests/live-provers.scm | 2 +- meta-checker/echidna-meta.agda-lib | 2 +- meta-checker/src/Echidna/AxiomSafety.agda | 2 +- .../src/Echidna/AxiomTrackerCompleteness.agda | 2 +- meta-checker/src/Echidna/Dispatch.agda | 2 +- meta-checker/src/Echidna/MetaChecker.agda | 2 +- meta-checker/src/Echidna/Portfolio.agda | 2 +- meta-checker/src/Echidna/TrustLevel.agda | 2 +- metrics/MetricsSuite.jl | 2 +- metrics/alignment_rate.jl | 2 +- metrics/corpus_loader.jl | 2 +- metrics/floor_progress.jl | 2 +- metrics/heaps_beta.jl | 2 +- metrics/msc_taxonomy_coverage.jl | 2 +- metrics/oov_rate.jl | 2 +- metrics/prover_floor.jl | 2 +- metrics/run_all.jl | 2 +- metrics/tactic_cluster_purity.jl | 2 +- metrics/triangulation_rate.jl | 2 +- metrics/verisim_sink.jl | 2 +- metrics/zipf_s.jl | 2 +- proofs/agda/AxiomMonotonicity.agda | 2 +- proofs/agda/CertificateChain.agda | 2 +- proofs/agda/DispatchOrdering.agda | 2 +- proofs/agda/IdentityLaws.agda | 2 +- proofs/agda/List.agda | 2 +- proofs/agda/Nat.agda | 2 +- proofs/agda/ParallelSoundness.agda | 2 +- proofs/agda/PortfolioConsistency.agda | 2 +- proofs/agda/ProofComposition.agda | 2 +- proofs/agda/Propositional.agda | 2 +- proofs/agda/SoundnessPreservation.agda | 2 +- proofs/agda/TrustLattice.agda | 2 +- proofs/agda/echidna-proofs.agda-lib | 2 +- proofs/coq/algebra/GroupTheory.v | 2 +- proofs/dimacs/graph_3color.cnf | 2 +- proofs/dimacs/pigeonhole_3_2.cnf | 2 +- proofs/dimacs/satisfiable_basic.cnf | 2 +- proofs/dimacs/unsatisfiable_basic.cnf | 2 +- proofs/dimacs/xor_chain.cnf | 2 +- proofs/isabelle/ROOT | 2 +- proofs/isabelle/algebra/GroupTheory.thy | 2 +- proofs/lean/Basic.lean | 2 +- proofs/lean/ECHIDNA.lean | 2 +- proofs/lean/List.lean | 2 +- proofs/lean/Nat.lean | 2 +- proofs/lean/Propositional.lean | 2 +- proofs/lean/algebra/GroupTheory.lean | 2 +- proofs/metamath/broken.mm | 2 +- proofs/metamath/tiny.mm | 2 +- proofs/tptp/contradiction.p | 2 +- proofs/tptp/disjunction_elim.p | 2 +- proofs/tptp/double_negation.p | 2 +- proofs/tptp/group_left_identity.p | 2 +- proofs/tptp/modus_ponens.p | 2 +- proofs/tptp/socrates.p | 2 +- proofs/tptp/symmetry_eq.p | 2 +- proofs/tptp/transitivity.p | 2 +- rustfmt.toml | 2 +- schemas/echidna.capnp | 2 +- scripts/a2ml_emit.jl | 4 +- scripts/align_premises.jl | 2 +- scripts/balance_corpus.jl | 2 +- scripts/ban-npm.sh | 2 +- scripts/collect-field-signal.sh | 2 +- scripts/extract_abc.jl | 2 +- scripts/extract_abella.jl | 2 +- scripts/extract_acl2.jl | 2 +- scripts/extract_acl2s.jl | 2 +- scripts/extract_afp.jl | 2 +- scripts/extract_agda.jl | 2 +- scripts/extract_all.sh | 2 +- scripts/extract_alloy.jl | 2 +- scripts/extract_arend.jl | 2 +- scripts/extract_athena.jl | 2 +- scripts/extract_boogie.jl | 2 +- scripts/extract_cameleer.jl | 2 +- scripts/extract_cbmc.jl | 2 +- scripts/extract_coqgym.jl | 2 +- scripts/extract_dafny.jl | 2 +- scripts/extract_dedukti.jl | 2 +- scripts/extract_dreal.jl | 2 +- scripts/extract_framac.jl | 2 +- scripts/extract_fstar.jl | 2 +- scripts/extract_hol4.jl | 2 +- scripts/extract_hol_light.jl | 2 +- scripts/extract_idris2.jl | 2 +- scripts/extract_isabelle_tropical.jl | 2 +- scripts/extract_isabelle_zf.jl | 2 +- scripts/extract_key.jl | 2 +- scripts/extract_lambda_prolog.jl | 2 +- scripts/extract_lean3.jl | 2 +- scripts/extract_mathcomp.jl | 4 +- scripts/extract_mathlib4.jl | 2 +- scripts/extract_matita.jl | 2 +- scripts/extract_mercury.jl | 2 +- scripts/extract_metamath.jl | 2 +- scripts/extract_minizinc.jl | 2 +- scripts/extract_mizar.jl | 2 +- scripts/extract_naproche.jl | 2 +- scripts/extract_nitpick.jl | 2 +- scripts/extract_nunchaku.jl | 2 +- scripts/extract_nusmv.jl | 2 +- scripts/extract_opentheory.jl | 2 +- scripts/extract_prism.jl | 2 +- scripts/extract_proverif.jl | 2 +- scripts/extract_pvs.jl | 2 +- scripts/extract_sat_benchmarks.jl | 2 +- scripts/extract_seahorn.jl | 2 +- scripts/extract_smtlib.jl | 4 +- scripts/extract_spin.jl | 2 +- scripts/extract_tamarin.jl | 2 +- scripts/extract_tlaps.jl | 2 +- scripts/extract_tlc.jl | 2 +- scripts/extract_tptp.jl | 4 +- scripts/extract_typechecker_ecosystem.jl | 2 +- scripts/extract_typed_wasm.jl | 2 +- scripts/extract_uppaal.jl | 2 +- scripts/extract_viper.jl | 2 +- scripts/extract_why3.jl | 2 +- scripts/extractor_save_common.jl | 2 +- scripts/final_complete_merge.jl | 2 +- scripts/final_normalization.jl | 2 +- scripts/gen-provers-a2ml.sh | 9 +- scripts/generate_synthetic_dafny_scale.jl | 2 +- scripts/generate_synthetic_provers.jl | 2 +- scripts/generate_synthetic_tail_scale.jl | 2 +- scripts/install-proof-toolchains.sh | 2 +- scripts/max_extract_coqgym.jl | 2 +- scripts/max_extract_mathlib4.jl | 2 +- scripts/merge_all_corpora.jl | 2 +- scripts/merge_corpus.jl | 2 +- scripts/merge_training_data.jl | 2 +- scripts/metamath_extract_working.jl | 2 +- scripts/metamath_final.jl | 2 +- scripts/mvp-functional.sh | 2 +- scripts/provision_corpora.sh | 2 +- scripts/simple_merge.jl | 2 +- scripts/simple_metamath_extract.jl | 2 +- scripts/test-proofs.sh | 2 +- scripts/test_integration.sh | 2 +- scripts/ultimate_expansion.jl | 2 +- scripts/vocabulary_5x_expansion.jl | 2 +- scripts/vocabulary_canonicalize.jl | 2 +- scripts/vocabulary_expansion.jl | 2 +- scripts/vocabulary_final.jl | 2 +- scripts/vocabulary_mine_corpus.jl | 2 +- selur-compose.toml | 2 +- setup.sh | 2 +- site/docs/index.adoc | 2 +- site/index.adoc | 3 +- spark/axiom_tracker/axiom_tracker.adb | 2 +- spark/axiom_tracker/axiom_tracker.ads | 2 +- spark/axiom_tracker/axiom_tracker_proof.adb | 2 +- spark/certificates/certificates.adb | 2 +- spark/certificates/certificates.ads | 2 +- spark/certificates/certificates_proof.adb | 2 +- spark/solver_integrity/solver_integrity.adb | 2 +- spark/solver_integrity/solver_integrity.ads | 2 +- .../solver_integrity_proof.adb | 2 +- src/abi/Boj/Foreign.idr | 2 +- src/abi/BojForeign.idr | 2 +- src/abi/CoprocessorForeign.idr | 2 +- src/abi/EchidnaABI/AxiomTracker.idr | 2 +- src/abi/EchidnaABI/CapnSchemas.idr | 2 +- src/abi/EchidnaABI/Foreign.idr | 2 +- src/abi/EchidnaABI/Gnn.idr | 2 +- src/abi/EchidnaABI/Layout.idr | 2 +- src/abi/EchidnaABI/Provers.idr | 2 +- src/abi/EchidnaABI/Provers/AutoActive.idr | 2 +- .../EchidnaABI/Provers/ConstraintSolvers.idr | 2 +- .../EchidnaABI/Provers/DeclarativeProvers.idr | 2 +- src/abi/EchidnaABI/Provers/FirstOrderAtp.idr | 2 +- .../Provers/InteractiveAssistants.idr | 2 +- src/abi/EchidnaABI/Provers/SmtSolvers.idr | 2 +- src/abi/EchidnaABI/TacticRecord.idr | 2 +- src/abi/EchidnaABI/Types.idr | 2 +- src/abi/EchidnaABI/VqlUt.idr | 2 +- src/abi/Foreign.idr | 2 +- src/abi/Layout.idr | 2 +- src/abi/NeSyAssistTesting.idr | 2 +- src/abi/Overlay.idr | 2 +- src/abi/Overlay/Foreign.idr | 2 +- src/abi/OverlayForeign.idr | 2 +- src/abi/Tentacles/Foreign.idr | 2 +- src/abi/TentaclesForeign.idr | 2 +- src/abi/TypeLL/Foreign.idr | 2 +- src/abi/TypeLLForeign.idr | 2 +- src/abi/Types.idr | 2 +- src/ada/spark/axiom_c_bridge.adb | 2 +- src/ada/spark/axiom_c_bridge.ads | 2 +- src/ada/spark/axiom_policy.adb | 2 +- src/ada/spark/axiom_policy.ads | 2 +- src/ada/spark/axiom_types.ads | 2 +- src/ada/spark/coprocessor_safety.adb | 2 +- src/ada/spark/coprocessor_safety.ads | 2 +- src/ada/spark/echidna_spark.gpr | 2 +- src/chapel/bench_mrr.chpl | 2 +- src/chapel/chapel_ffi_exports.chpl | 2 +- src/chapel/parallel_proof_search.chpl | 2 +- src/chapel/smoke.chpl | 2 +- src/idris/ProofTerm.idr | 2 +- src/idris/Validator.idr | 2 +- src/interfaces/ffi_integration_test.rs | 2 +- src/interfaces/graphql/Cargo.toml | 4 +- src/interfaces/graphql/ffi_wrapper.rs | 2 +- src/interfaces/graphql/main.rs | 2 +- src/interfaces/graphql/resolvers.rs | 2 +- src/interfaces/graphql/schema.rs | 2 +- src/interfaces/grpc/Cargo.toml | 4 +- src/interfaces/grpc/build.rs | 2 +- src/interfaces/grpc/ffi_wrapper.rs | 2 +- src/interfaces/grpc/main.rs | 2 +- src/interfaces/grpc/proto/echidna.proto | 2 +- src/interfaces/rest/Cargo.toml | 4 +- src/interfaces/rest/ffi_wrapper.rs | 2 +- src/interfaces/rest/handlers.rs | 2 +- src/interfaces/rest/main.rs | 2 +- src/interfaces/rest/models.rs | 2 +- src/julia/EchidnaBuddy.jl | 2 +- src/julia/EchidnaML.jl | 2 +- src/julia/api/gnn_endpoint.jl | 2 +- src/julia/api/server.jl | 2 +- src/julia/api_server.jl | 2 +- src/julia/archive/train_advanced_models.jl | 2 +- src/julia/archive/train_and_evaluate.jl | 2 +- src/julia/archive/train_complete_final.jl | 2 +- src/julia/archive/train_final_models.jl | 2 +- src/julia/archive/train_models.jl | 2 +- src/julia/coprocessor.jl | 2 +- src/julia/corpus_loader.jl | 2 +- src/julia/eval_held_out.jl | 2 +- src/julia/extract_all_proofs.jl | 2 +- src/julia/extract_training_data.jl | 2 +- src/julia/inference/predict.jl | 2 +- src/julia/ipc.jl | 2 +- src/julia/models/encoder.jl | 2 +- src/julia/models/neural_solver.jl | 2 +- src/julia/probabilistic/gen_reasoning.jl | 2 +- src/julia/retrain_from_verisim.jl | 2 +- src/julia/rl/training.jl | 2 +- src/julia/run_server.jl | 2 +- src/julia/run_training.jl | 2 +- src/julia/run_training_cpu.jl | 2 +- src/julia/saturation_synonyms.jl | 2 +- src/julia/training/dataloader.jl | 2 +- src/julia/training/train.jl | 2 +- src/rust/agent/actors.rs | 2 +- src/rust/agent/explanations.rs | 2 +- src/rust/agent/memory.rs | 2 +- src/rust/agent/meta_controller.rs | 2 +- src/rust/agent/mod.rs | 2 +- src/rust/agent/planner.rs | 2 +- src/rust/agent/router.rs | 2 +- src/rust/agent/swarm.rs | 2 +- src/rust/anomaly_detection.rs | 2 +- src/rust/aspect.rs | 2 +- src/rust/coprocessor/audio.rs | 2 +- src/rust/coprocessor/crypto.rs | 2 +- src/rust/coprocessor/dsp.rs | 2 +- src/rust/coprocessor/flint.rs | 2 +- src/rust/coprocessor/fpga.rs | 2 +- src/rust/coprocessor/gap.rs | 2 +- src/rust/coprocessor/graphics.rs | 2 +- src/rust/coprocessor/io.rs | 2 +- src/rust/coprocessor/julia_bridge.rs | 2 +- src/rust/coprocessor/macaulay2.rs | 2 +- src/rust/coprocessor/math.rs | 2 +- src/rust/coprocessor/maxima.rs | 2 +- src/rust/coprocessor/mod.rs | 2 +- src/rust/coprocessor/parigp.rs | 2 +- src/rust/coprocessor/physics.rs | 2 +- src/rust/coprocessor/singular.rs | 2 +- src/rust/coprocessor/tensor.rs | 2 +- src/rust/coprocessor/trust.rs | 2 +- src/rust/coprocessor/types.rs | 2 +- src/rust/coprocessor/vector.rs | 2 +- src/rust/corpus/acl2_books.rs | 2 +- src/rust/corpus/agda.rs | 2 +- src/rust/corpus/coq.rs | 2 +- src/rust/corpus/dafny.rs | 2 +- src/rust/corpus/embed.rs | 2 +- src/rust/corpus/fstar.rs | 2 +- src/rust/corpus/hol4.rs | 2 +- src/rust/corpus/hol_light.rs | 2 +- src/rust/corpus/idris2.rs | 2 +- src/rust/corpus/isabelle.rs | 2 +- src/rust/corpus/lean.rs | 2 +- src/rust/corpus/metamath.rs | 2 +- src/rust/corpus/metrics.rs | 2 +- src/rust/corpus/minif2f.rs | 2 +- src/rust/corpus/mizar.rs | 2 +- src/rust/corpus/mod.rs | 2 +- src/rust/corpus/octad.rs | 2 +- src/rust/corpus/proofnet.rs | 2 +- src/rust/corpus/query.rs | 2 +- src/rust/corpus/smtlib.rs | 2 +- src/rust/corpus/tptp.rs | 2 +- src/rust/corpus/why3.rs | 2 +- src/rust/diagnostics/corpus_monitor.rs | 2 +- src/rust/diagnostics/fallback_monitor.rs | 2 +- src/rust/diagnostics/gnn_training.rs | 2 +- src/rust/diagnostics/health.rs | 2 +- src/rust/diagnostics/mod.rs | 2 +- src/rust/diagnostics/nesy_validation.rs | 2 +- src/rust/diagnostics/proof_failure.rs | 2 +- src/rust/disciplines/detector.rs | 2 +- src/rust/disciplines/mod.rs | 2 +- src/rust/disciplines/registry.rs | 2 +- src/rust/dispatch.rs | 2 +- src/rust/exchange/dedukti.rs | 2 +- src/rust/exchange/lambdapi.rs | 2 +- src/rust/exchange/mod.rs | 2 +- src/rust/exchange/opentheory.rs | 2 +- src/rust/exchange/smtcoq.rs | 2 +- src/rust/exchange/smtlib.rs | 2 +- src/rust/exchange/tptp.rs | 2 +- src/rust/executor/bounded.rs | 2 +- src/rust/executor/mod.rs | 2 +- src/rust/executor/sandbox.rs | 2 +- src/rust/fault_tolerance/mod.rs | 2 +- src/rust/fault_tolerance/resilience.rs | 2 +- src/rust/ffi/mod.rs | 2 +- src/rust/ffi/spark_axiom.rs | 2 +- src/rust/gnn/client.rs | 2 +- src/rust/gnn/embeddings.rs | 2 +- src/rust/gnn/fallback_monitor.rs | 2 +- src/rust/gnn/graph.rs | 2 +- src/rust/gnn/guided_search.rs | 2 +- src/rust/gnn/mod.rs | 2 +- src/rust/groove.rs | 2 +- src/rust/integration.rs | 2 +- src/rust/integrations/conceptnet.rs | 2 +- src/rust/integrity/io.rs | 2 +- src/rust/integrity/mod.rs | 2 +- src/rust/integrity/solver_integrity.rs | 2 +- src/rust/ipc/mod.rs | 2 +- src/rust/learning/buchholz_rank.rs | 2 +- src/rust/learning/curriculum.rs | 2 +- src/rust/learning/daemon.rs | 2 +- src/rust/learning/design_search.rs | 2 +- src/rust/learning/mcts.rs | 2 +- src/rust/learning/mod.rs | 2 +- src/rust/learning/self_play.rs | 2 +- src/rust/lib.rs | 2 +- src/rust/llm.rs | 2 +- src/rust/main.rs | 2 +- src/rust/neural.rs | 2 +- src/rust/output.rs | 2 +- src/rust/parsers/mod.rs | 2 +- src/rust/proof_encoding.rs | 2 +- src/rust/proof_search.rs | 2 +- src/rust/provers/abc.rs | 2 +- src/rust/provers/abella.rs | 2 +- src/rust/provers/acl2.rs | 2 +- src/rust/provers/acl2s.rs | 2 +- src/rust/provers/agda.rs | 2 +- src/rust/provers/agsyhol.rs | 2 +- src/rust/provers/alloy.rs | 2 +- src/rust/provers/altergo.rs | 2 +- src/rust/provers/aprove.rs | 2 +- src/rust/provers/arend.rs | 2 +- src/rust/provers/athena.rs | 2 +- src/rust/provers/boogie.rs | 2 +- src/rust/provers/cadical.rs | 2 +- src/rust/provers/cameleer.rs | 2 +- src/rust/provers/cbmc.rs | 2 +- src/rust/provers/chuffed.rs | 2 +- src/rust/provers/connection_method.rs | 2 +- src/rust/provers/coq.rs | 2 +- src/rust/provers/cryptoverif.rs | 4 +- src/rust/provers/csi.rs | 2 +- src/rust/provers/cubical_agda.rs | 2 +- src/rust/provers/cvc5.rs | 2 +- src/rust/provers/dafny.rs | 4 +- src/rust/provers/dedukti.rs | 2 +- src/rust/provers/dreal.rs | 2 +- src/rust/provers/easycrypt.rs | 4 +- src/rust/provers/elk.rs | 2 +- src/rust/provers/eprover.rs | 2 +- src/rust/provers/faial.rs | 2 +- src/rust/provers/framac.rs | 2 +- src/rust/provers/fstar.rs | 2 +- src/rust/provers/glpk.rs | 2 +- src/rust/provers/gnatprove.rs | 8 +- src/rust/provers/gpuverify.rs | 2 +- src/rust/provers/hol4.rs | 2 +- src/rust/provers/hol_light.rs | 2 +- src/rust/provers/hp_ecosystem.rs | 2 +- src/rust/provers/idris2.rs | 4 +- src/rust/provers/ileancop.rs | 2 +- src/rust/provers/imandra.rs | 2 +- src/rust/provers/io.rs | 2 +- src/rust/provers/iprover.rs | 2 +- src/rust/provers/isabelle.rs | 2 +- src/rust/provers/isabelle_zf.rs | 2 +- src/rust/provers/key.rs | 2 +- src/rust/provers/keymaerax.rs | 2 +- src/rust/provers/kissat.rs | 2 +- src/rust/provers/konclude.rs | 2 +- src/rust/provers/lambda_prolog.rs | 2 +- src/rust/provers/lash.rs | 2 +- src/rust/provers/lean.rs | 2 +- src/rust/provers/lean3.rs | 2 +- src/rust/provers/leo3.rs | 2 +- src/rust/provers/liquid_haskell.rs | 4 +- src/rust/provers/matita.rs | 2 +- src/rust/provers/mercury.rs | 2 +- src/rust/provers/metamath.rs | 2 +- src/rust/provers/metitarski.rs | 2 +- src/rust/provers/mettel2.rs | 2 +- src/rust/provers/minisat.rs | 2 +- src/rust/provers/minizinc.rs | 2 +- src/rust/provers/minlog.rs | 2 +- src/rust/provers/mizar.rs | 2 +- src/rust/provers/mizar_ar.rs | 2 +- src/rust/provers/mleancop.rs | 2 +- src/rust/provers/mod.rs | 2 +- src/rust/provers/nanocop.rs | 2 +- src/rust/provers/naproche.rs | 2 +- src/rust/provers/nitpick.rs | 2 +- src/rust/provers/nunchaku.rs | 2 +- src/rust/provers/nuprl.rs | 2 +- src/rust/provers/nusmv.rs | 2 +- src/rust/provers/opensmt.rs | 2 +- src/rust/provers/ortools.rs | 2 +- src/rust/provers/outcome.rs | 2 +- src/rust/provers/princess.rs | 2 +- src/rust/provers/prism.rs | 2 +- src/rust/provers/prob.rs | 2 +- src/rust/provers/prover9.rs | 2 +- src/rust/provers/proverif.rs | 2 +- src/rust/provers/pvs.rs | 2 +- src/rust/provers/qepcad.rs | 2 +- src/rust/provers/redlog.rs | 2 +- src/rust/provers/rocq.rs | 2 +- src/rust/provers/satallax.rs | 2 +- src/rust/provers/scip.rs | 2 +- src/rust/provers/seahorn.rs | 2 +- src/rust/provers/smtrat.rs | 2 +- src/rust/provers/spass.rs | 2 +- src/rust/provers/spin_checker.rs | 2 +- src/rust/provers/stainless.rs | 4 +- src/rust/provers/storm.rs | 2 +- src/rust/provers/tamarin.rs | 2 +- src/rust/provers/tlaps.rs | 2 +- src/rust/provers/tlc.rs | 2 +- src/rust/provers/tptp_output.rs | 2 +- src/rust/provers/twee.rs | 2 +- src/rust/provers/twelf.rs | 2 +- src/rust/provers/typed_wasm.rs | 2 +- src/rust/provers/uppaal.rs | 2 +- src/rust/provers/uppaal_stratego.rs | 2 +- src/rust/provers/vampire.rs | 2 +- src/rust/provers/viper.rs | 2 +- src/rust/provers/why3.rs | 2 +- src/rust/provers/z3.rs | 2 +- src/rust/provers/zipperposition.rs | 2 +- src/rust/repl/diagnostics.rs | 2 +- src/rust/repl/mod.rs | 2 +- src/rust/repl/proof.rs | 2 +- src/rust/server.rs | 2 +- src/rust/suggest/extractor.rs | 2 +- src/rust/suggest/mod.rs | 2 +- src/rust/suggest/report.rs | 2 +- src/rust/suggest/synonyms.rs | 2 +- src/rust/suggest/tester.rs | 2 +- src/rust/suggest/variant.rs | 2 +- src/rust/vcl_ut.rs | 2 +- src/rust/verification/axiom_tracker.rs | 2 +- src/rust/verification/bayesian_arbiter.rs | 2 +- src/rust/verification/certificates.rs | 2 +- src/rust/verification/confidence.rs | 2 +- src/rust/verification/dempster_shafer.rs | 2 +- src/rust/verification/mod.rs | 2 +- src/rust/verification/mutation.rs | 2 +- src/rust/verification/pareto.rs | 2 +- src/rust/verification/pareto_arbiter.rs | 2 +- src/rust/verification/portfolio.rs | 2 +- src/rust/verification/proof.rs | 2 +- src/rust/verification/result_arbiter.rs | 2 +- src/rust/verification/statistics.rs | 2 +- src/rust/verisim_bridge.rs | 2 +- src/ui/public/prove.html | 2 +- src/ui/tea/echidna_gui.affine | 2 +- src/ui/tea/echidna_tea.js | 2 +- src/zig/build.zig | 2 +- src/zig/ffi/axiom_spark_bridge.zig | 2 +- src/zig/ffi/echidna_ffi.zig | 2 +- src/zig_ffi/build.zig | 2 +- src/zig_ffi/chapel_bridge.zig | 2 +- src/zig_ffi/chapel_ffi_exports.h | 2 +- src/zig_ffi/chapel_stubs.c | 2 +- tests/agentic_integration.rs | 2 +- tests/aspect_tests.rs | 2 +- tests/chapel_fixtures/agda_trivial.agda | 2 +- tests/chapel_fixtures/coq_trivial.v | 2 +- tests/chapel_fixtures/idris2_trivial.idr | 2 +- tests/chapel_fixtures/lean_trivial.lean | 2 +- tests/common/assertions.rs | 2 +- tests/common/generators.rs | 2 +- tests/common/mock_prover.rs | 2 +- tests/common/mod.rs | 2 +- tests/concurrency_test.rs | 2 +- tests/corpus_fixtures/acl2/smoke.lisp | 2 +- tests/corpus_fixtures/dafny/Smoke.dfy | 2 +- tests/corpus_fixtures/fstar/Smoke.fst | 2 +- tests/corpus_fixtures/hol4/MiniScript.sml | 2 +- tests/corpus_fixtures/hol_light/smoke.ml | 2 +- tests/corpus_fixtures/isabelle/Smoke.thy | 2 +- tests/corpus_fixtures/mizar/MINI.miz | 2 +- tests/corpus_fixtures/why3/smoke.mlw | 2 +- tests/corpus_health_integration_test.rs | 2 +- tests/e2e_proof_pipeline.rs | 2 +- tests/e2e_prover_test.rs | 2 +- tests/fallback_monitor_integration_test.rs | 2 +- tests/fixtures/hp/echo_trivial.tll | 2 +- tests/fixtures/hp/katagoria_trivial.k | 2 +- tests/fixtures/hp/tropical_trivial.tll | 2 +- tests/full_health_system_test.rs | 2 +- tests/gnn_augment_integration.rs | 2 +- tests/gnn_training_integration_test.rs | 2 +- tests/integration_test.sh | 2 +- tests/integration_tests.rs | 2 +- tests/integration_v1_2.rs | 2 +- tests/julia/gnn_rank_smoke.jl | 2 +- tests/julia/smoke_test.jl | 2 +- tests/julia_corpus_loader_smoke.jl | 2 +- tests/live_prover_suite.rs | 2 +- tests/live_prover_verify.rs | 2 +- tests/live_service_regressions.rs | 2 +- tests/neural_property_tests.rs | 2 +- tests/p2p_property_tests.rs | 2 +- tests/panic_attack_props.rs | 2 +- tests/performance_check.rs | 2 +- tests/property_tests.rs | 2 +- .../prove_handler_health_integration_test.rs | 2 +- tests/s4_loop_closure.rs | 2 +- tests/sanity_suite.rs | 2 +- tests/security_aspect_tests.rs | 2 +- tests/shell/validate_scripts.sh | 2 +- tests/smoke_e2e.rs | 2 +- tests/stage1_integration_test.rs | 2 +- tests/test_agda_backend.rs | 2 +- tests/test_neural_integration.rs | 2 +- tests/typed_wasm_properties.rs | 2 +- .../proofs/idris2/AxiomCompleteness.idr | 2 +- .../proofs/idris2/AxiomPolicyOrdering.idr | 2 +- verification/proofs/idris2/BasicTotality.idr | 2 +- .../proofs/idris2/ClampTrustBounds.idr | 2 +- .../proofs/idris2/DispatchCorrectness.idr | 2 +- .../proofs/idris2/DispatchOrdering.idr | 2 +- verification/proofs/idris2/NatLte.idr | 2 +- .../proofs/idris2/ProofStateSerialisation.idr | 2 +- .../proofs/idris2/ProverKindInjectivity.idr | 2 +- .../proofs/idris2/TrustKernelMonotonicity.idr | 2 +- .../proofs/idris2/TrustLevelSoundness.idr | 2 +- .../proofs/idris2/echidna-verif-proofs.ipkg | 2 +- .../proofs/lean4/ConfidenceLattice.lean | 2 +- .../proofs/lean4/IntegrityVerification.lean | 2 +- .../proofs/lean4/ParetoMaximality.lean | 2 +- .../proofs/lean4/ParetoStrongMaximality.lean | 2 +- .../proofs/lean4/PortfolioCompleteness.lean | 2 +- verification/proofs/lean4/lakefile.lean | 2 +- www/.well-known/ai.txt | 2 +- www/.well-known/humans.txt | 4 +- www/.well-known/security.txt | 2 +- 743 files changed, 1285 insertions(+), 1552 deletions(-) diff --git a/.clusterfuzzlite/Containerfile b/.clusterfuzzlite/Containerfile index c02d019e..43f88636 100644 --- a/.clusterfuzzlite/Containerfile +++ b/.clusterfuzzlite/Containerfile @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 FROM gcr.io/oss-fuzz-base/base-builder-rust@sha256:73c1d5648db54100639339d411a5d192cbc8bf413ee91e843a07cf6f0e319dc7 COPY . $SRC/echidna diff --git a/.clusterfuzzlite/Dockerfile b/.clusterfuzzlite/Dockerfile index c02d019e..43f88636 100644 --- a/.clusterfuzzlite/Dockerfile +++ b/.clusterfuzzlite/Dockerfile @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 FROM gcr.io/oss-fuzz-base/base-builder-rust@sha256:73c1d5648db54100639339d411a5d192cbc8bf413ee91e843a07cf6f0e319dc7 COPY . $SRC/echidna diff --git a/.clusterfuzzlite/build.sh b/.clusterfuzzlite/build.sh index f180fc9d..5b801c6d 100755 --- a/.clusterfuzzlite/build.sh +++ b/.clusterfuzzlite/build.sh @@ -1,5 +1,5 @@ #!/bin/bash -eu -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 cd "$SRC"/echidna cargo +nightly fuzz build # `fuzz` is excluded from the workspace (`Cargo.toml:154-157`), so diff --git a/.clusterfuzzlite/project.yaml b/.clusterfuzzlite/project.yaml index 4a622527..311ed3dc 100644 --- a/.clusterfuzzlite/project.yaml +++ b/.clusterfuzzlite/project.yaml @@ -1,2 +1,2 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 language: rust diff --git a/.containerization/Containerfile b/.containerization/Containerfile index af3a9f9a..9122c3c6 100644 --- a/.containerization/Containerfile +++ b/.containerization/Containerfile @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2024-2025 Jonathan D.A. Jewell # # ECHIDNA Minimal Containerfile - Multi-stage build for Podman diff --git a/.containerization/Containerfile.full b/.containerization/Containerfile.full index 139fc4f5..3bfb8abc 100644 --- a/.containerization/Containerfile.full +++ b/.containerization/Containerfile.full @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2024-2025 Jonathan D.A. Jewell # # ECHIDNA Full Containerfile - Includes a curated prover set @@ -135,7 +135,7 @@ COPY guix-channel/echidna.scm /channel/echidna/ # If no guix channel file exists, create a stub RUN if [ ! -f /channel/echidna/echidna.scm ]; then \ - printf ';;; SPDX-License-Identifier: AGPL-3.0-or-later\n\ + printf ';;; SPDX-License-Identifier: MPL-2.0\n\ (define-module (echidna)\n\ #:use-module (guix packages)\n\ #:use-module (guix build-system cargo)\n\ diff --git a/.containerization/Containerfile.mcp b/.containerization/Containerfile.mcp index a0d3fabd..ef69531e 100644 --- a/.containerization/Containerfile.mcp +++ b/.containerization/Containerfile.mcp @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell # # ECHIDNA MCP Container — exposes ECHIDNA as a Model Context Protocol server diff --git a/.containerization/Containerfile.wave3 b/.containerization/Containerfile.wave3 index f736c0b0..3dd3a6f6 100644 --- a/.containerization/Containerfile.wave3 +++ b/.containerization/Containerfile.wave3 @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell # # ECHIDNA Wave-3 (Tier-3, weekly) prover images — CONSOLIDATED multi-target diff --git a/.containerization/build.sh b/.containerization/build.sh index 24edf0ae..0d48402f 100755 --- a/.containerization/build.sh +++ b/.containerization/build.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Build ECHIDNA container images using Podman set -euo pipefail diff --git a/.echidnabot.toml b/.echidnabot.toml index 712c2e42..7406ca4a 100644 --- a/.echidnabot.toml +++ b/.echidnabot.toml @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2026 Hyperpolymath # # echidnabot configuration for echidna diff --git a/.editorconfig b/.editorconfig index 8ba04db4..016781b6 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2024-2026 Jonathan D.A. Jewell (hyperpolymath) # EditorConfig helps maintain consistent coding styles diff --git a/.gitattributes b/.gitattributes index 7bbe6d53..e860a85c 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # RSR-compliant .gitattributes * text=auto eol=lf diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 1c57dd76..fb9afafe 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # CODEOWNERS - Code ownership for ECHIDNA # See https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 38fe1416..688a442c 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Funding platforms for hyperpolymath projects # See: https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/displaying-a-sponsor-button-in-your-repository diff --git a/.github/canonical-references/prover-counts.yml b/.github/canonical-references/prover-counts.yml index f11a936d..45c1646e 100644 --- a/.github/canonical-references/prover-counts.yml +++ b/.github/canonical-references/prover-counts.yml @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2025-2026 Jonathan D.A. Jewell # # R5 canonical-reference rule: bare prover counts in load-bearing diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 3c928372..94bf53d8 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 version: 2 updates: - package-ecosystem: "cargo" diff --git a/.github/hooks/validate-a2ml.sh b/.github/hooks/validate-a2ml.sh index b7f16138..b16fa852 100755 --- a/.github/hooks/validate-a2ml.sh +++ b/.github/hooks/validate-a2ml.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) # # validate-a2ml.sh — A2ML manifest validation script diff --git a/.github/hooks/validate-k9.sh b/.github/hooks/validate-k9.sh index b60ee5cd..c83e2908 100755 --- a/.github/hooks/validate-k9.sh +++ b/.github/hooks/validate-k9.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) # # validate-k9.sh — K9 configuration file validation script diff --git a/.github/workflows/agda-meta-checker.yml b/.github/workflows/agda-meta-checker.yml index 9ee602a5..8ecd16d3 100644 --- a/.github/workflows/agda-meta-checker.yml +++ b/.github/workflows/agda-meta-checker.yml @@ -1,5 +1,5 @@ # This workflow is managed by gh actions-lock. -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # This workflow is managed by gh actions-lock. # This workflow is managed by gh actions-lock. # This workflow is managed by gh actions-lock. diff --git a/.github/workflows/boj-build.yml b/.github/workflows/boj-build.yml index 542e43c4..d7cf4b52 100644 --- a/.github/workflows/boj-build.yml +++ b/.github/workflows/boj-build.yml @@ -1,5 +1,5 @@ # This workflow is managed by gh actions-lock. -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # This workflow is managed by gh actions-lock. # This workflow is managed by gh actions-lock. # This workflow is managed by gh actions-lock. diff --git a/.github/workflows/bridge-gate.yml b/.github/workflows/bridge-gate.yml index 5ee7b5f0..eda0d039 100644 --- a/.github/workflows/bridge-gate.yml +++ b/.github/workflows/bridge-gate.yml @@ -1,5 +1,5 @@ # This workflow is managed by gh actions-lock. -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # This workflow is managed by gh actions-lock. # This workflow is managed by gh actions-lock. # This workflow is managed by gh actions-lock. diff --git a/.github/workflows/cargo-audit.yml b/.github/workflows/cargo-audit.yml index 9ab5411c..fed125be 100644 --- a/.github/workflows/cargo-audit.yml +++ b/.github/workflows/cargo-audit.yml @@ -1,5 +1,5 @@ # This workflow is managed by gh actions-lock. -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # This workflow is managed by gh actions-lock. # This workflow is managed by gh actions-lock. # This workflow is managed by gh actions-lock. diff --git a/.github/workflows/cflite_batch.yml b/.github/workflows/cflite_batch.yml index 7664cab3..d7432165 100644 --- a/.github/workflows/cflite_batch.yml +++ b/.github/workflows/cflite_batch.yml @@ -1,5 +1,5 @@ # This workflow is managed by gh actions-lock. -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # This workflow is managed by gh actions-lock. # This workflow is managed by gh actions-lock. # This workflow is managed by gh actions-lock. diff --git a/.github/workflows/cflite_pr.yml b/.github/workflows/cflite_pr.yml index ada022f8..ec6a0c32 100644 --- a/.github/workflows/cflite_pr.yml +++ b/.github/workflows/cflite_pr.yml @@ -1,5 +1,5 @@ # This workflow is managed by gh actions-lock. -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # This workflow is managed by gh actions-lock. # This workflow is managed by gh actions-lock. # This workflow is managed by gh actions-lock. diff --git a/.github/workflows/chapel-ci.yml b/.github/workflows/chapel-ci.yml index eceed1b8..600b405c 100644 --- a/.github/workflows/chapel-ci.yml +++ b/.github/workflows/chapel-ci.yml @@ -1,5 +1,5 @@ # This workflow is managed by gh actions-lock. -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # This workflow is managed by gh actions-lock. name: Chapel Accelerator CI diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 8ad76c59..f2cd9d58 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -1,5 +1,5 @@ # This workflow is managed by gh actions-lock. -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # This workflow is managed by gh actions-lock. # This workflow is managed by gh actions-lock. # This workflow is managed by gh actions-lock. diff --git a/.github/workflows/container-ci.yml b/.github/workflows/container-ci.yml index e9562214..945f9a1b 100644 --- a/.github/workflows/container-ci.yml +++ b/.github/workflows/container-ci.yml @@ -1,5 +1,5 @@ # This workflow is managed by gh actions-lock. -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # This workflow is managed by gh actions-lock. # This workflow is managed by gh actions-lock. # This workflow is managed by gh actions-lock. diff --git a/.github/workflows/dogfood-gate.yml b/.github/workflows/dogfood-gate.yml index 6d45e5d3..442c4b39 100644 --- a/.github/workflows/dogfood-gate.yml +++ b/.github/workflows/dogfood-gate.yml @@ -1,5 +1,5 @@ # This workflow is managed by gh actions-lock. -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # This workflow is managed by gh actions-lock. # This workflow is managed by gh actions-lock. # This workflow is managed by gh actions-lock. diff --git a/.github/workflows/dogfood-proofs-ci.yml b/.github/workflows/dogfood-proofs-ci.yml index 64f05c29..e2f91f3a 100644 --- a/.github/workflows/dogfood-proofs-ci.yml +++ b/.github/workflows/dogfood-proofs-ci.yml @@ -1,5 +1,5 @@ # This workflow is managed by gh actions-lock. -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # This workflow is managed by gh actions-lock. # This workflow is managed by gh actions-lock. # This workflow is managed by gh actions-lock. diff --git a/.github/workflows/formal-verification.yml b/.github/workflows/formal-verification.yml index 15888297..dfa3c927 100644 --- a/.github/workflows/formal-verification.yml +++ b/.github/workflows/formal-verification.yml @@ -1,5 +1,5 @@ # This workflow is managed by gh actions-lock. -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # This workflow is managed by gh actions-lock. # Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) # diff --git a/.github/workflows/generator-generic-ossf-slsa3-publish.yml b/.github/workflows/generator-generic-ossf-slsa3-publish.yml index 72d43a1a..d828cf1d 100644 --- a/.github/workflows/generator-generic-ossf-slsa3-publish.yml +++ b/.github/workflows/generator-generic-ossf-slsa3-publish.yml @@ -1,5 +1,5 @@ # This workflow is managed by gh actions-lock. -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # This workflow is managed by gh actions-lock. # This workflow is managed by gh actions-lock. # This workflow is managed by gh actions-lock. diff --git a/.github/workflows/ghcr-publish.yml b/.github/workflows/ghcr-publish.yml index e576eaaa..46603d5a 100644 --- a/.github/workflows/ghcr-publish.yml +++ b/.github/workflows/ghcr-publish.yml @@ -1,5 +1,5 @@ # This workflow is managed by gh actions-lock. -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # This workflow is managed by gh actions-lock. # This workflow is managed by gh actions-lock. # This workflow is managed by gh actions-lock. diff --git a/.github/workflows/governance.yml b/.github/workflows/governance.yml index b15b455e..d29d77de 100644 --- a/.github/workflows/governance.yml +++ b/.github/workflows/governance.yml @@ -1,5 +1,5 @@ # This workflow is managed by gh actions-lock. -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # This workflow is managed by gh actions-lock. # This workflow is managed by gh actions-lock. # This workflow is managed by gh actions-lock. diff --git a/.github/workflows/hypatia-scan.yml b/.github/workflows/hypatia-scan.yml index 5ad9b5ba..220a6d90 100644 --- a/.github/workflows/hypatia-scan.yml +++ b/.github/workflows/hypatia-scan.yml @@ -1,5 +1,5 @@ # This workflow is managed by gh actions-lock. -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # This workflow is managed by gh actions-lock. # This workflow is managed by gh actions-lock. # This workflow is managed by gh actions-lock. diff --git a/.github/workflows/idris2-abi-ci.yml b/.github/workflows/idris2-abi-ci.yml index 11a0fa55..f9a2068f 100644 --- a/.github/workflows/idris2-abi-ci.yml +++ b/.github/workflows/idris2-abi-ci.yml @@ -1,5 +1,5 @@ # This workflow is managed by gh actions-lock. -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # This workflow is managed by gh actions-lock. # This workflow is managed by gh actions-lock. # This workflow is managed by gh actions-lock. diff --git a/.github/workflows/live-provers.yml b/.github/workflows/live-provers.yml index d0a762c0..f3cc281f 100644 --- a/.github/workflows/live-provers.yml +++ b/.github/workflows/live-provers.yml @@ -1,5 +1,5 @@ # This workflow is managed by gh actions-lock. -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # This workflow is managed by gh actions-lock. # ECHIDNA — Live-Prover CI # diff --git a/.github/workflows/mirror.yml b/.github/workflows/mirror.yml index f447c9f7..72f69c35 100644 --- a/.github/workflows/mirror.yml +++ b/.github/workflows/mirror.yml @@ -1,5 +1,5 @@ # This workflow is managed by gh actions-lock. -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # This workflow is managed by gh actions-lock. # This workflow is managed by gh actions-lock. # This workflow is managed by gh actions-lock. diff --git a/.github/workflows/mvp-smoke.yml b/.github/workflows/mvp-smoke.yml index 10c9ef22..5e9f8f71 100644 --- a/.github/workflows/mvp-smoke.yml +++ b/.github/workflows/mvp-smoke.yml @@ -1,5 +1,5 @@ # This workflow is managed by gh actions-lock. -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # This workflow is managed by gh actions-lock. name: MVP Smoke (Best Effort) diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml index 207bfd7d..188c4bfb 100644 --- a/.github/workflows/pages.yml +++ b/.github/workflows/pages.yml @@ -1,5 +1,5 @@ # This workflow is managed by gh actions-lock. -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # This workflow is managed by gh actions-lock. # This workflow is managed by gh actions-lock. # This workflow is managed by gh actions-lock. diff --git a/.github/workflows/proof-safety.yml b/.github/workflows/proof-safety.yml index 0b865906..eb137add 100644 --- a/.github/workflows/proof-safety.yml +++ b/.github/workflows/proof-safety.yml @@ -1,5 +1,5 @@ # This workflow is managed by gh actions-lock. -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # This workflow is managed by gh actions-lock. name: Proof Safety on: diff --git a/.github/workflows/rust-ci.yml b/.github/workflows/rust-ci.yml index 751c48f5..7d6b4839 100644 --- a/.github/workflows/rust-ci.yml +++ b/.github/workflows/rust-ci.yml @@ -1,5 +1,5 @@ # This workflow is managed by gh actions-lock. -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # This workflow is managed by gh actions-lock. # This workflow is managed by gh actions-lock. # This workflow is managed by gh actions-lock. diff --git a/.github/workflows/s4-loop.yml b/.github/workflows/s4-loop.yml index c4fa245a..fa166a46 100644 --- a/.github/workflows/s4-loop.yml +++ b/.github/workflows/s4-loop.yml @@ -1,5 +1,5 @@ # This workflow is managed by gh actions-lock. -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # This workflow is managed by gh actions-lock. # S4 loop-closure CI — brings up verisim-api as a service container and # runs the echidna s4_loop_closure integration test. Filed once diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index b1de9552..075b227d 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -1,5 +1,5 @@ # This workflow is managed by gh actions-lock. -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # This workflow is managed by gh actions-lock. # This workflow is managed by gh actions-lock. # This workflow is managed by gh actions-lock. diff --git a/.github/workflows/secret-scanner.yml b/.github/workflows/secret-scanner.yml index a07b5171..82b73b42 100644 --- a/.github/workflows/secret-scanner.yml +++ b/.github/workflows/secret-scanner.yml @@ -1,5 +1,5 @@ # This workflow is managed by gh actions-lock. -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # This workflow is managed by gh actions-lock. # This workflow is managed by gh actions-lock. # This workflow is managed by gh actions-lock. diff --git a/.github/workflows/security-scan.yml b/.github/workflows/security-scan.yml index 57da9683..221dfd4d 100644 --- a/.github/workflows/security-scan.yml +++ b/.github/workflows/security-scan.yml @@ -1,5 +1,5 @@ # This workflow is managed by gh actions-lock. -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # This workflow is managed by gh actions-lock. # This workflow is managed by gh actions-lock. # This workflow is managed by gh actions-lock. diff --git a/.github/workflows/server-boot-gate.yml b/.github/workflows/server-boot-gate.yml index 0695a085..e9267c75 100644 --- a/.github/workflows/server-boot-gate.yml +++ b/.github/workflows/server-boot-gate.yml @@ -1,5 +1,5 @@ # This workflow is managed by gh actions-lock. -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # This workflow is managed by gh actions-lock. # Server boot gate — builds the echidna binary, boots the server, and # verifies that /api/health, /api/provers, and a session {id} route all diff --git a/.github/workflows/spark-theatre-gate.yml b/.github/workflows/spark-theatre-gate.yml index 13a66662..96143b0e 100644 --- a/.github/workflows/spark-theatre-gate.yml +++ b/.github/workflows/spark-theatre-gate.yml @@ -1,5 +1,5 @@ # This workflow is managed by gh actions-lock. -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # This workflow is managed by gh actions-lock. # This workflow is managed by gh actions-lock. # This workflow is managed by gh actions-lock. diff --git a/.github/workflows/verification-proofs-cron.yml b/.github/workflows/verification-proofs-cron.yml index a7981c25..226d254a 100644 --- a/.github/workflows/verification-proofs-cron.yml +++ b/.github/workflows/verification-proofs-cron.yml @@ -1,5 +1,5 @@ # This workflow is managed by gh actions-lock. -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # This workflow is managed by gh actions-lock. # Weekly verification of the heavier self-proof corpora that are too slow and too # network-heavy to gate on every PR: currently Isabelle/HOL (proofs/isabelle). The diff --git a/.github/workflows/workflow-linter.yml b/.github/workflows/workflow-linter.yml index 22434d64..f9dce445 100644 --- a/.github/workflows/workflow-linter.yml +++ b/.github/workflows/workflow-linter.yml @@ -1,5 +1,5 @@ # This workflow is managed by gh actions-lock. -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # This workflow is managed by gh actions-lock. # Prevention workflow - validates all workflows have proper security config name: Workflow Security Linter diff --git a/.gitignore b/.gitignore index dc5e9dfd..44d6fc17 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # RSR-compliant .gitignore # OS & Editor diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 9eadf708..100f21f2 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2024-2025 ECHIDNA Project Contributors # # ECHIDNA GitLab CI/CD Pipeline diff --git a/.guix-channel b/.guix-channel index 29e94809..8ecae4a9 100644 --- a/.guix-channel +++ b/.guix-channel @@ -1,4 +1,4 @@ -;; SPDX-License-Identifier: AGPL-3.0-or-later +;; SPDX-License-Identifier: MPL-2.0 ;; Guix channel definition for ECHIDNA (channel (version 0) diff --git a/.machine_readable/contractiles/_base.ncl b/.machine_readable/contractiles/_base.ncl index 22306faf..34ec621f 100644 --- a/.machine_readable/contractiles/_base.ncl +++ b/.machine_readable/contractiles/_base.ncl @@ -1,5 +1,4 @@ # SPDX-License-Identifier: MPL-2.0 -# (MPL-2.0 is automatic legal fallback until PMPL is formally recognised) # # _base.ncl — Shared contractile base # diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 59d5bc80..9088b338 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Pre-commit hooks for hyperpolymath RSR repos. # Install: pip install pre-commit && pre-commit install # Run manually: pre-commit run --all-files diff --git a/.reuse/dep5 b/.reuse/dep5 index bf8b8956..25638635 100644 --- a/.reuse/dep5 +++ b/.reuse/dep5 @@ -3,15 +3,15 @@ Upstream-Name: ECHIDNA Upstream-Contact: Jonathan D.A. Jewell Source: https://github.com/hyperpolymath/echidna -# ECHIDNA is licensed in four parts. See NOTICE for the rationale and for -# why the MPL-2.0 components are compatible with the AGPL umbrella -# (MPL-2.0 section 3.3, Secondary Licenses). +# ECHIDNA is MPL-2.0 for code and the specification surface, CC-BY-SA-4.0 +# for documentation, and MPL-2.0 (unchanged) for echidna-playground/. +# See NOTICE. Re-ruled 2026-10-01 (D262) from the 2026-08 AGPL split. # # Per-file SPDX-License-Identifier headers are authoritative. The stanzas # below are the REUSE bulk fallback for files that carry no header. # --------------------------------------------------------------------------- -# 1. Code — AGPL-3.0-or-later +# 1. Code — MPL-2.0 # --------------------------------------------------------------------------- Files: src/* @@ -48,15 +48,14 @@ Files: src/* contractile.just guix.scm Copyright: 2024-2026 Jonathan D.A. Jewell and ECHIDNA Project Contributors -License: AGPL-3.0-or-later +License: MPL-2.0 # --------------------------------------------------------------------------- # 2. Machine-readable specification surface — MPL-2.0 # -# Deliberately NOT AGPL: specification and metadata intended for -# interoperability and, in part, standards-body submission, where strong -# copyleft would obstruct adoption. Weak copyleft keeps improvements open -# without burdening implementers. +# Specification and metadata intended for interoperability and, in part, +# standards-body submission. Kept as its own stanza for that reason, though +# it now shares the code licence. # --------------------------------------------------------------------------- Files: .machine_readable/* @@ -84,8 +83,7 @@ License: CC-BY-SA-4.0 # 4. Coq-Jr playground — MPL-2.0, NOT relicensed # # Carries contributions from Coq-Jr Contributors rather than the ECHIDNA -# project. Sits under the AGPL umbrella via MPL-2.0 section 3.3 while -# remaining individually available under MPL-2.0. +# project. Has always been MPL-2.0; the 2026-10-01 re-ruling does not touch it. # --------------------------------------------------------------------------- Files: echidna-playground/* diff --git a/CHANGELOG.adoc b/CHANGELOG.adoc index 26e0a4bf..267aaaa9 100644 --- a/CHANGELOG.adoc +++ b/CHANGELOG.adoc @@ -8,6 +8,17 @@ https://semver.org/spec/v2.0.0.html[Semantic Versioning]. === [Unreleased] +==== Changed + +* *Licence: `+AGPL-3.0-or-later+` → `+MPL-2.0+` for code and the +specification surface, `+CC-BY-SA-4.0+` for documentation* (owner ruling +D262, 2026-10-01). `+echidna-playground/+` stays MPL-2.0, untouched. +`+LICENSE+` is now the verbatim Mozilla text; NOTICE, `+.reuse/dep5+`, +the crate manifests, `+build/guix.scm+`, README, CLAUDE.md, the wiki and +`+docs/DEBT.adoc+` record the re-ruling. The `+.a2ml+` manifests keep +their AGPL headers until their `+.deed+` conversion, so +`+LICENSES/AGPL-3.0-or-later.txt+` stays until then. + ==== Fixed * ci(chapel): pin runs-on to ubuntu-22.04 for Chapel 2.8.0 diff --git a/CLAUDE.md b/CLAUDE.md index f050165f..a4e9adcb 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -8,11 +8,9 @@ Guidelines and context for working with Claude Code on the ECHIDNA project. - **Repository**: https://github.com/hyperpolymath/echidna - **Version + release history**: [`CHANGELOG.adoc`](CHANGELOG.adoc) (single source of truth; do not duplicate version strings elsewhere) -- **License**: four parts — AGPL-3.0-or-later (application code), **MPL-2.0 - (`.machine_readable/` specification surface + manifests + OCI labels, kept - weak-copyleft for interoperability/standards work)**, CC-BY-SA-4.0 (docs), - MPL-2.0 (`echidna-playground/`). See [`NOTICE`](NOTICE); MPL §3.3 is what - makes the MPL parts compatible inside the AGPL work +- **License**: MPL-2.0 (code, `.machine_readable/` specification surface, + manifests, OCI labels, `echidna-playground/`), CC-BY-SA-4.0 (docs). + Re-ruled 2026-10-01 (D262) from the 2026-08 AGPL split. See [`NOTICE`](NOTICE) - **Architecture overview**: [`docs/ARCHITECTURE.adoc`](docs/ARCHITECTURE.adoc) - **Canonical prover count + tier table**: [`docs/PROVER_COUNT.adoc`](docs/PROVER_COUNT.adoc) - **Known debt (licence, docs, code)**: [`docs/DEBT.adoc`](docs/DEBT.adoc) @@ -210,16 +208,16 @@ in `.github/workflows/`: - **RSR / CCCP compliance** — see [`RSR_COMPLIANCE.adoc`](RSR_COMPLIANCE.adoc) for the full hard-rule list and out-of-template adaptations. - **Justfile primary** (RSR-H14) — Just is the build entry point; no Make. - **Podman not Docker** (RSR-H15) — always Podman; `Containerfile` (not `Dockerfile`); `.containerization/Containerfile.wave3` for per-prover images. -- **License**: four parts, reconciled 2026-08 — **application code** - AGPL-3.0-or-later (matching `LICENSE` and `Cargo.toml`); **machine-readable - specification surface** (`.machine_readable/`, `0-AI-MANIFEST.a2ml`, - package/container manifests, OCI image labels) MPL-2.0, held weak-copyleft - on purpose so it stays usable for interoperability and standards - submission; **documentation** CC-BY-SA-4.0; **`echidna-playground/`** - MPL-2.0 (Coq-Jr contributions, not relicensed). Per-file SPDX headers are - authoritative. When adding a file, use the licence of the part of the tree - it sits in — do not copy a header from elsewhere. Rationale and the MPL - §3.3 compatibility argument: [`NOTICE`](NOTICE). +- **License**: re-ruled 2026-10-01 (D262), superseding the 2026-08 AGPL + split — **code and the machine-readable specification surface** + (`.machine_readable/`, package/container manifests, OCI image labels) + MPL-2.0, matching `LICENSE` and `Cargo.toml`; **documentation** + CC-BY-SA-4.0; **`echidna-playground/`** MPL-2.0 (Coq-Jr contributions, + never relicensed). Never AGPL. Per-file SPDX headers are authoritative. + When adding a file, use MPL-2.0 for code/config and CC-BY-SA-4.0 for + prose — do not copy a header from elsewhere (a few `.a2ml` files still + carry a stale AGPL header until their `.deed` conversion). See + [`NOTICE`](NOTICE). - **Author**: Jonathan D.A. Jewell . --- diff --git a/Cargo.toml b/Cargo.toml index b74ca6ab..2e84051d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,11 +1,11 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 [package] name = "echidna" version = "2.3.0" edition = "2021" authors = ["Jonathan D.A. Jewell "] -license = "AGPL-3.0-or-later" +license = "MPL-2.0" description = "Neurosymbolic theorem proving platform with multi-prover support" repository = "https://github.com/hyperpolymath/echidna" diff --git a/Containerfile b/Containerfile index 1b0560d5..10e7ad6c 100644 --- a/Containerfile +++ b/Containerfile @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2024-2026 Jonathan D.A. Jewell # # ECHIDNA Minimal Container Image diff --git a/HOL-o-extension/activate.sh b/HOL-o-extension/activate.sh index ef170322..0645078a 100755 --- a/HOL-o-extension/activate.sh +++ b/HOL-o-extension/activate.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # # activate.sh — Enable the HOL-o-extension overlay # diff --git a/HOL-o-extension/overlays/default.sml b/HOL-o-extension/overlays/default.sml index 23af10f7..743c0b8c 100644 --- a/HOL-o-extension/overlays/default.sml +++ b/HOL-o-extension/overlays/default.sml @@ -1,4 +1,4 @@ -(* SPDX-License-Identifier: AGPL-3.0-or-later *) +(* SPDX-License-Identifier: MPL-2.0 *) (* default.sml — Base overlay configuration for HOL-o-extension * * This overlay is always applied when the o-extension is active. diff --git a/HOL-o-extension/overlays/security.sml b/HOL-o-extension/overlays/security.sml index 295d665e..35514e67 100644 --- a/HOL-o-extension/overlays/security.sml +++ b/HOL-o-extension/overlays/security.sml @@ -1,4 +1,4 @@ -(* SPDX-License-Identifier: AGPL-3.0-or-later *) +(* SPDX-License-Identifier: MPL-2.0 *) (* security.sml — Security-focused overlay for HOL-o-extension * * Adds theories and tactics for security protocol verification, diff --git a/HOL-o-extension/tactics/neurosymbolicTac.sml b/HOL-o-extension/tactics/neurosymbolicTac.sml index 2b02e140..701838fe 100644 --- a/HOL-o-extension/tactics/neurosymbolicTac.sml +++ b/HOL-o-extension/tactics/neurosymbolicTac.sml @@ -1,4 +1,4 @@ -(* SPDX-License-Identifier: AGPL-3.0-or-later *) +(* SPDX-License-Identifier: MPL-2.0 *) (* neurosymbolicTac.sml — Neurosymbolic tactics for ECHIDNA * * Provides HOL4 tactics that integrate with ECHIDNA's ML-guided diff --git a/HOL-o-extension/theories/echidnaTrustScript.sml b/HOL-o-extension/theories/echidnaTrustScript.sml index cc574ec2..384ede5e 100644 --- a/HOL-o-extension/theories/echidnaTrustScript.sml +++ b/HOL-o-extension/theories/echidnaTrustScript.sml @@ -1,4 +1,4 @@ -(* SPDX-License-Identifier: AGPL-3.0-or-later *) +(* SPDX-License-Identifier: MPL-2.0 *) (* echidnaTrustScript.sml — Trust level theory for ECHIDNA * * Formalises ECHIDNA's 5-level trust hierarchy in HOL4: diff --git a/LICENSE b/LICENSE index be3f7b28..d0a1fa14 100644 --- a/LICENSE +++ b/LICENSE @@ -1,661 +1,373 @@ - GNU AFFERO GENERAL PUBLIC LICENSE - Version 3, 19 November 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU Affero General Public License is a free, copyleft license for -software and other kinds of works, specifically designed to ensure -cooperation with the community in the case of network server software. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -our General Public Licenses are intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - Developers that use our General Public Licenses protect your rights -with two steps: (1) assert copyright on the software, and (2) offer -you this License which gives you legal permission to copy, distribute -and/or modify the software. - - A secondary benefit of defending all users' freedom is that -improvements made in alternate versions of the program, if they -receive widespread use, become available for other developers to -incorporate. Many developers of free software are heartened and -encouraged by the resulting cooperation. However, in the case of -software used on network servers, this result may fail to come about. -The GNU General Public License permits making a modified version and -letting the public access it on a server without ever releasing its -source code to the public. - - The GNU Affero General Public License is designed specifically to -ensure that, in such cases, the modified source code becomes available -to the community. It requires the operator of a network server to -provide the source code of the modified version running there to the -users of that server. Therefore, public use of a modified version, on -a publicly accessible server, gives the public access to the source -code of the modified version. - - An older license, called the Affero General Public License and -published by Affero, was designed to accomplish similar goals. This is -a different license, not a version of the Affero GPL, but Affero has -released a new version of the Affero GPL which permits relicensing under -this license. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU Affero General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Remote Network Interaction; Use with the GNU General Public License. - - Notwithstanding any other provision of this License, if you modify the -Program, your modified version must prominently offer all users -interacting with it remotely through a computer network (if your version -supports such interaction) an opportunity to receive the Corresponding -Source of your version by providing access to the Corresponding Source -from a network server at no charge, through some standard or customary -means of facilitating copying of software. This Corresponding Source -shall include the Corresponding Source for any work covered by version 3 -of the GNU General Public License that is incorporated pursuant to the -following paragraph. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the work with which it is combined will remain governed by version -3 of the GNU General Public License. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU Affero General Public License from time to time. Such new versions -will be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU Affero General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU Affero General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU Affero General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Affero General Public License for more details. - - You should have received a copy of the GNU Affero General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If your software can interact with users remotely through a computer -network, you should also make sure that it provides a way for users to -get its source. For example, if your program is a web application, its -interface could display a "Source" link that leads users to an archive -of the code. There are many ways you could offer source, and different -solutions will be better for different programs; see section 13 for the -specific requirements. - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU AGPL, see -. +Mozilla Public License Version 2.0 +================================== + +1. Definitions +-------------- + +1.1. "Contributor" + means each individual or legal entity that creates, contributes to + the creation of, or owns Covered Software. + +1.2. "Contributor Version" + means the combination of the Contributions of others (if any) used + by a Contributor and that particular Contributor's Contribution. + +1.3. "Contribution" + means Covered Software of a particular Contributor. + +1.4. "Covered Software" + means Source Code Form to which the initial Contributor has attached + the notice in Exhibit A, the Executable Form of such Source Code + Form, and Modifications of such Source Code Form, in each case + including portions thereof. + +1.5. "Incompatible With Secondary Licenses" + means + + (a) that the initial Contributor has attached the notice described + in Exhibit B to the Covered Software; or + + (b) that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the + terms of a Secondary License. + +1.6. "Executable Form" + means any form of the work other than Source Code Form. + +1.7. "Larger Work" + means a work that combines Covered Software with other material, in + a separate file or files, that is not Covered Software. + +1.8. "License" + means this document. + +1.9. "Licensable" + means having the right to grant, to the maximum extent possible, + whether at the time of the initial grant or subsequently, any and + all of the rights conveyed by this License. + +1.10. "Modifications" + means any of the following: + + (a) any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered + Software; or + + (b) any new file in Source Code Form that contains any Covered + Software. + +1.11. "Patent Claims" of a Contributor + means any patent claim(s), including without limitation, method, + process, and apparatus claims, in any patent Licensable by such + Contributor that would be infringed, but for the grant of the + License, by the making, using, selling, offering for sale, having + made, import, or transfer of either its Contributions or its + Contributor Version. + +1.12. "Secondary License" + means either the GNU General Public License, Version 2.0, the GNU + Lesser General Public License, Version 2.1, the GNU Affero General + Public License, Version 3.0, or any later versions of those + licenses. + +1.13. "Source Code Form" + means the form of the work preferred for making modifications. + +1.14. "You" (or "Your") + means an individual or a legal entity exercising rights under this + License. For legal entities, "You" includes any entity that + controls, is controlled by, or is under common control with You. For + purposes of this definition, "control" means (a) the power, direct + or indirect, to cause the direction or management of such entity, + whether by contract or otherwise, or (b) ownership of more than + fifty percent (50%) of the outstanding shares or beneficial + ownership of such entity. + +2. License Grants and Conditions +-------------------------------- + +2.1. Grants + +Each Contributor hereby grants You a world-wide, royalty-free, +non-exclusive license: + +(a) under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or + as part of a Larger Work; and + +(b) under Patent Claims of such Contributor to make, use, sell, offer + for sale, have made, import, and otherwise transfer either its + Contributions or its Contributor Version. + +2.2. Effective Date + +The licenses granted in Section 2.1 with respect to any Contribution +become effective for each Contribution on the date the Contributor first +distributes such Contribution. + +2.3. Limitations on Grant Scope + +The licenses granted in this Section 2 are the only rights granted under +this License. No additional rights or licenses will be implied from the +distribution or licensing of Covered Software under this License. +Notwithstanding Section 2.1(b) above, no patent license is granted by a +Contributor: + +(a) for any code that a Contributor has removed from Covered Software; + or + +(b) for infringements caused by: (i) Your and any other third party's + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + +(c) under Patent Claims infringed by Covered Software in the absence of + its Contributions. + +This License does not grant any rights in the trademarks, service marks, +or logos of any Contributor (except as may be necessary to comply with +the notice requirements in Section 3.4). + +2.4. Subsequent Licenses + +No Contributor makes additional grants as a result of Your choice to +distribute the Covered Software under a subsequent version of this +License (see Section 10.2) or under the terms of a Secondary License (if +permitted under the terms of Section 3.3). + +2.5. Representation + +Each Contributor represents that the Contributor believes its +Contributions are its original creation(s) or it has sufficient rights +to grant the rights to its Contributions conveyed by this License. + +2.6. Fair Use + +This License is not intended to limit any rights You have under +applicable copyright doctrines of fair use, fair dealing, or other +equivalents. + +2.7. Conditions + +Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted +in Section 2.1. + +3. Responsibilities +------------------- + +3.1. Distribution of Source Form + +All distribution of Covered Software in Source Code Form, including any +Modifications that You create or to which You contribute, must be under +the terms of this License. You must inform recipients that the Source +Code Form of the Covered Software is governed by the terms of this +License, and how they can obtain a copy of this License. You may not +attempt to alter or restrict the recipients' rights in the Source Code +Form. + +3.2. Distribution of Executable Form + +If You distribute Covered Software in Executable Form then: + +(a) such Covered Software must also be made available in Source Code + Form, as described in Section 3.1, and You must inform recipients of + the Executable Form how they can obtain a copy of such Source Code + Form by reasonable means in a timely manner, at a charge no more + than the cost of distribution to the recipient; and + +(b) You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter + the recipients' rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + +You may create and distribute a Larger Work under terms of Your choice, +provided that You also comply with the requirements of this License for +the Covered Software. If the Larger Work is a combination of Covered +Software with a work governed by one or more Secondary Licenses, and the +Covered Software is not Incompatible With Secondary Licenses, this +License permits You to additionally distribute such Covered Software +under the terms of such Secondary License(s), so that the recipient of +the Larger Work may, at their option, further distribute the Covered +Software under the terms of either this License or such Secondary +License(s). + +3.4. Notices + +You may not remove or alter the substance of any license notices +(including copyright notices, patent notices, disclaimers of warranty, +or limitations of liability) contained within the Source Code Form of +the Covered Software, except that You may alter any license notices to +the extent required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + +You may choose to offer, and to charge a fee for, warranty, support, +indemnity or liability obligations to one or more recipients of Covered +Software. However, You may do so only on Your own behalf, and not on +behalf of any Contributor. You must make it absolutely clear that any +such warranty, support, indemnity, or liability obligation is offered by +You alone, and You hereby agree to indemnify every Contributor for any +liability incurred by such Contributor as a result of warranty, support, +indemnity or liability terms You offer. You may include additional +disclaimers of warranty and limitations of liability specific to any +jurisdiction. + +4. Inability to Comply Due to Statute or Regulation +--------------------------------------------------- + +If it is impossible for You to comply with any of the terms of this +License with respect to some or all of the Covered Software due to +statute, judicial order, or regulation then You must: (a) comply with +the terms of this License to the maximum extent possible; and (b) +describe the limitations and the code they affect. Such description must +be placed in a text file included with all distributions of the Covered +Software under this License. Except to the extent prohibited by statute +or regulation, such description must be sufficiently detailed for a +recipient of ordinary skill to be able to understand it. + +5. Termination +-------------- + +5.1. The rights granted under this License will terminate automatically +if You fail to comply with any of its terms. However, if You become +compliant, then the rights granted under this License from a particular +Contributor are reinstated (a) provisionally, unless and until such +Contributor explicitly and finally terminates Your grants, and (b) on an +ongoing basis, if such Contributor fails to notify You of the +non-compliance by some reasonable means prior to 60 days after You have +come back into compliance. Moreover, Your grants from a particular +Contributor are reinstated on an ongoing basis if such Contributor +notifies You of the non-compliance by some reasonable means, this is the +first time You have received notice of non-compliance with this License +from such Contributor, and You become compliant prior to 30 days after +Your receipt of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent +infringement claim (excluding declaratory judgment actions, +counter-claims, and cross-claims) alleging that a Contributor Version +directly or indirectly infringes any patent, then the rights granted to +You by any and all Contributors for the Covered Software under Section +2.1 of this License shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all +end user license agreements (excluding distributors and resellers) which +have been validly granted by You or Your distributors under this License +prior to termination shall survive termination. + +************************************************************************ +* * +* 6. Disclaimer of Warranty * +* ------------------------- * +* * +* Covered Software is provided under this License on an "as is" * +* basis, without warranty of any kind, either expressed, implied, or * +* statutory, including, without limitation, warranties that the * +* Covered Software is free of defects, merchantable, fit for a * +* particular purpose or non-infringing. The entire risk as to the * +* quality and performance of the Covered Software is with You. * +* Should any Covered Software prove defective in any respect, You * +* (not any Contributor) assume the cost of any necessary servicing, * +* repair, or correction. This disclaimer of warranty constitutes an * +* essential part of this License. No use of any Covered Software is * +* authorized under this License except under this disclaimer. * +* * +************************************************************************ + +************************************************************************ +* * +* 7. Limitation of Liability * +* -------------------------- * +* * +* Under no circumstances and under no legal theory, whether tort * +* (including negligence), contract, or otherwise, shall any * +* Contributor, or anyone who distributes Covered Software as * +* permitted above, be liable to You for any direct, indirect, * +* special, incidental, or consequential damages of any character * +* including, without limitation, damages for lost profits, loss of * +* goodwill, work stoppage, computer failure or malfunction, or any * +* and all other commercial damages or losses, even if such party * +* shall have been informed of the possibility of such damages. This * +* limitation of liability shall not apply to liability for death or * +* personal injury resulting from such party's negligence to the * +* extent applicable law prohibits such limitation. Some * +* jurisdictions do not allow the exclusion or limitation of * +* incidental or consequential damages, so this exclusion and * +* limitation may not apply to You. * +* * +************************************************************************ + +8. Litigation +------------- + +Any litigation relating to this License may be brought only in the +courts of a jurisdiction where the defendant maintains its principal +place of business and such litigation shall be governed by laws of that +jurisdiction, without reference to its conflict-of-law provisions. +Nothing in this Section shall prevent a party's ability to bring +cross-claims or counter-claims. + +9. Miscellaneous +---------------- + +This License represents the complete agreement concerning the subject +matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the extent +necessary to make it enforceable. Any law or regulation which provides +that the language of a contract shall be construed against the drafter +shall not be used to construe this License against a Contributor. + +10. Versions of the License +--------------------------- + +10.1. New Versions + +Mozilla Foundation is the license steward. Except as provided in Section +10.3, no one other than the license steward has the right to modify or +publish new versions of this License. Each version will be given a +distinguishing version number. + +10.2. Effect of New Versions + +You may distribute the Covered Software under the terms of the version +of the License under which You originally received the Covered Software, +or under the terms of any subsequent version published by the license +steward. + +10.3. Modified Versions + +If you create software not governed by this License, and you want to +create a new license for such software, you may create and use a +modified version of this License if you rename the license and remove +any references to the name of the license steward (except to note that +such modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary +Licenses + +If You choose to distribute Source Code Form that is Incompatible With +Secondary Licenses under the terms of this version of the License, the +notice described in Exhibit B of this License must be attached. + +Exhibit A - Source Code Form License Notice +------------------------------------------- + + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at https://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular +file, then You may include the notice in a location (such as a LICENSE +file in a relevant directory) where a recipient would be likely to look +for such a notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - "Incompatible With Secondary Licenses" Notice +--------------------------------------------------------- + + This Source Code Form is "Incompatible With Secondary Licenses", as + defined by the Mozilla Public License, v. 2.0. diff --git a/Mustfile b/Mustfile index afc11b5b..5f075413 100644 --- a/Mustfile +++ b/Mustfile @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Mustfile - hyperpolymath mandatory checks # See: https://github.com/hyperpolymath/mustfile diff --git a/NOTICE b/NOTICE index 3839e178..578bf411 100644 --- a/NOTICE +++ b/NOTICE @@ -3,42 +3,34 @@ Copyright (c) 2024-2026 Jonathan D.A. Jewell and ECHIDNA Project Contributors LICENSING -This project is licensed under the GNU Affero General Public License, -version 3 or later (AGPL-3.0-or-later). +This project is licensed under the Mozilla Public License, version 2.0 +(MPL-2.0), with its documentation under Creative Commons +Attribution-ShareAlike 4.0 (CC-BY-SA-4.0). - Full text: LICENSE (also in LICENSES/AGPL-3.0-or-later.txt) - SPDX-License-Identifier: AGPL-3.0-or-later + Full text: LICENSE (also in LICENSES/MPL-2.0.txt) + SPDX-License-Identifier: MPL-2.0 -Four licences apply, to four distinct parts of the tree. This is deliberate, -not drift: +Three parts of the tree, two licences: - 1. APPLICATION CODE AGPL-3.0-or-later + 1. CODE AND SPECIFICATION SURFACE MPL-2.0 The Rust core, Julia ML layer, Zig FFI, Chapel parallel layer, SPARK/Ada - units, proof corpora, build system and CI. The AGPL's network clause - applies: if you run a modified ECHIDNA as a network service, you must - offer your users the modified source. - - 2. MACHINE-READABLE SPECIFICATION SURFACE MPL-2.0 - Everything under .machine_readable/ (A2ML descriptiles, contractiles, - K9 configurations, anchors, policies), 0-AI-MANIFEST.a2ml, the package - and container manifests, and the OCI image labels emitted by the - stapeln / svalinn build tooling. - - This part is deliberately NOT AGPL. It is specification and metadata - intended for interoperability, some of it on a path to standards-body - submission, where strong copyleft would obstruct adoption and - re-publication. MPL-2.0 keeps it file-level weak copyleft: improvements - to these files stay open, but implementing against them carries no - obligation. - - 3. DOCUMENTATION CC-BY-SA-4.0 + units, proof corpora, build system and CI; and everything under + .machine_readable/ (descriptiles, contractiles, K9 configurations, + anchors, policies), the AI manifest, the package and container + manifests, and the OCI image labels emitted by the stapeln / svalinn + build tooling. MPL-2.0 is file-level copyleft: modifications to these + files must stay open, but combining them with other code, or + implementing against the specification surface, carries no obligation + on the rest of a larger work. + + 2. DOCUMENTATION CC-BY-SA-4.0 Everything under docs/, plus the top-level Markdown and AsciiDoc documents. - 4. echidna-playground/ MPL-2.0 + 3. echidna-playground/ MPL-2.0 The Coq-Jr playground sub-project, which carries contributions from - Coq-Jr Contributors rather than the ECHIDNA project. It remains under - the Mozilla Public License 2.0 and is NOT relicensed. + Coq-Jr Contributors rather than the ECHIDNA project. It has always been + MPL-2.0 and is NOT relicensed. Files that previously offered `Palimpsest-0.6` now carry MPL-2.0. The Palimpsest Licence is MPL-2.0 with additional ethical provisions layered on @@ -46,19 +38,11 @@ top, so MPL-2.0 is the faithful reduction when the Palimpsest layer is not being asserted. See "THE PALIMPSEST FRAMEWORK IS NOT A LICENCE GRANT HERE" below. -WHY THE MPL COMPONENT IS COMPATIBLE - -MPL-2.0 section 3.3 designates the GNU licences - including -AGPL-3.0-or-later - as "Secondary Licenses". MPL-covered files may therefore -be combined into this AGPL-licensed work, and the combined work distributed -under the AGPL, while those files individually remain available under the -MPL. No file in this repository carries the MPL Exhibit B -"Incompatible With Secondary Licenses" notice, which would have prevented -this. - -In short: the whole distributed work is AGPL-3.0-or-later. If you extract the -MPL-2.0 parts on their own - the machine-readable specification surface, or -echidna-playground/ - you may use those under MPL-2.0. +Until the remaining `.a2ml` manifests are converted to `.deed`, a handful of +them (and one training-data file) still carry an AGPL-3.0-or-later SPDX +header; LICENSES/AGPL-3.0-or-later.txt is retained for them in the interim. +Those headers are stale, not a carve-out: the owner's 2026-10-01 ruling +places the whole of the project's own code under MPL-2.0. See docs/DEBT.adoc. THE PALIMPSEST FRAMEWORK IS NOT A LICENCE GRANT HERE @@ -78,14 +62,15 @@ this repository. They were removed in 2026-08. LICENCE HISTORY dual MIT / Palimpsest-0.6 -> MPL-2.0 -> AGPL-3.0-or-later for - application code, MPL-2.0 retained for the specification surface (2026) + application code, MPL-2.0 for the specification surface (2026-08) + -> MPL-2.0 throughout, CC-BY-SA-4.0 for documentation (2026-10-01) -The AGPL decision was taken by the project owner in 2026 and the per-file SPDX -headers were reconciled to match it in 2026-08, at which point the -machine-readable specification surface was deliberately held at MPL-2.0 for -interoperability and standards-submission reasons. Documents predating that -reconciliation may describe the whole project as MPL-2.0; LICENSE and this -file are authoritative. +The owner re-ruled ECHIDNA onto the estate default on 2026-10-01 (ruling +D262), superseding the 2026-08 AGPL decision. Copies obtained between those +dates under AGPL-3.0-or-later remain available to their recipients under +that licence; everything from 2026-10-01 is MPL-2.0. Documents predating the +re-ruling may describe application code as AGPL; LICENSE and this file are +authoritative. ================================================================================ @@ -124,10 +109,10 @@ This project follows the REUSE Software Licensing specification. .reuse/dep5 bulk copyright declarations per-file headers SPDX-License-Identifier, per the - four-part split described above - LICENSES/AGPL-3.0-or-later.txt application code - LICENSES/MPL-2.0.txt machine-readable specification surface - and echidna-playground/ + split described above + LICENSES/MPL-2.0.txt code, specification surface and + echidna-playground/ + LICENSES/AGPL-3.0-or-later.txt interim only: the stale .a2ml headers LICENSES/CC-BY-SA-4.0.txt documentation Verify locally: `reuse lint` @@ -145,9 +130,9 @@ See RSR_COMPLIANCE.adoc at repo root. CONTRIBUTIONS Contributions are licensed under the licence governing the part of the tree -they land in: AGPL-3.0-or-later for application code, MPL-2.0 for the -machine-readable specification surface and echidna-playground/, and -CC-BY-SA-4.0 for documentation. See .github/CONTRIBUTING.md. +they land in: MPL-2.0 for code, the machine-readable specification +surface and echidna-playground/, and CC-BY-SA-4.0 for documentation. +See .github/CONTRIBUTING.md. By contributing, you certify that: 1. You have the right to submit the contribution. @@ -174,7 +159,7 @@ If you use this software in academic work, please cite: author = {Jonathan D.A. Jewell and ECHIDNA Project Contributors}, year = {2026}, url = {https://github.com/hyperpolymath/echidna}, - license = {AGPL-3.0-or-later}, + license = {MPL-2.0}, } See CITATION.cff for machine-readable metadata and docs/CITATIONS.adoc for diff --git a/Project.toml b/Project.toml index e9d19315..a70895f8 100644 --- a/Project.toml +++ b/Project.toml @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2024-2025 ECHIDNA Project Contributors name = "ECHIDNA" diff --git a/README.adoc b/README.adoc index c67c8897..1be35d43 100644 --- a/README.adoc +++ b/README.adoc @@ -1,18 +1,16 @@ -link:LICENSE[image:https://img.shields.io/badge/License-AGPL--3.0--or--later-blue.svg[License: -AGPL-3.0-or-later]] +link:LICENSE[image:https://img.shields.io/badge/License-MPL--2.0-blue.svg[License: +MPL-2.0]] https://www.thegreenwebfoundation.org/green-web-check/?url=nesy-prover.dev[image:https://api.thegreenwebfoundation.org/greencheckimage/nesy-prover.dev[Green Hosting]] ____ -*Licensing.* ECHIDNA is licensed in four parts: *application code* under -AGPL-3.0-or-later; the *machine-readable specification surface* -(`+.machine_readable/+`, manifests, OCI labels) under MPL-2.0, -deliberately weak-copyleft so it stays usable for interoperability and -standards work; *documentation* under CC-BY-SA-4.0; and -*`+echidna-playground/+`* under MPL-2.0. The combined work distributes -as AGPL-3.0-or-later — run a modified ECHIDNA as a network service and -you must offer your users the modified source. MPL §3.3 (Secondary -Licenses) is what makes the MPL parts compatible inside the AGPL work. +*Licensing.* ECHIDNA is licensed under MPL-2.0: the code, the +*machine-readable specification surface* (`+.machine_readable/+`, +manifests, OCI labels) and *`+echidna-playground/+`*. *Documentation* is +under CC-BY-SA-4.0. MPL-2.0 is file-level copyleft: changes to ECHIDNA's +files stay open, while combining them with other code carries no +obligation on the rest of that work. (Re-ruled 2026-10-01 from the 2026-08 +AGPL-3.0-or-later split.) Full statement: link:NOTICE[`+NOTICE+`]. ____ @@ -582,13 +580,14 @@ list and ECHIDNA’s out-of-template adaptations. * *Justfile primary* — Just is the build entry point; no Make. * *Podman not Docker* — always Podman; `+Containerfile+` (`+.containerization/+` for the per-prover images) not `+Dockerfile+`. -* *License*: AGPL-3.0-or-later. See LICENSE. +* *License*: MPL-2.0 (code), CC-BY-SA-4.0 (docs). See LICENSE and NOTICE. == License -This project is licensed under the link:LICENSE[GNU Affero General -Public License v3.0 or later]. Individual files may carry earlier -MPL-2.0 SPDX headers pending the header migration sweep. +This project is licensed under the link:LICENSE[Mozilla Public License +2.0]; documentation is under CC-BY-SA-4.0. A few `+.a2ml+` manifests +still carry a stale AGPL-3.0-or-later header until their `+.deed+` +conversion; see link:NOTICE[`+NOTICE+`]. == Citation @@ -599,7 +598,7 @@ MPL-2.0 SPDX headers pending the header migration sweep. author = {Jewell, Jonathan D.A.}, year = {2026}, url = {https://github.com/hyperpolymath/echidna}, - license = {AGPL-3.0-or-later} + license = {MPL-2.0} } ---- diff --git a/alloyiser.toml b/alloyiser.toml index fdf8e14d..9de5eea7 100644 --- a/alloyiser.toml +++ b/alloyiser.toml @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # alloyiser manifest for echidna # Echidna has REST, GraphQL, and gRPC interfaces under src/interfaces/ diff --git a/benches/proof_benchmarks.rs b/benches/proof_benchmarks.rs index 154bddd7..38e35aa1 100644 --- a/benches/proof_benchmarks.rs +++ b/benches/proof_benchmarks.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2025-2026 Jonathan D.A. Jewell -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Performance benchmarks for ECHIDNA proof operations //! diff --git a/benches/routing_benchmarks.rs b/benches/routing_benchmarks.rs index 6263111e..b7ada9d6 100644 --- a/benches/routing_benchmarks.rs +++ b/benches/routing_benchmarks.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) // //! Routing and dispatch latency benchmarks for ECHIDNA. diff --git a/build.rs b/build.rs index c55bf0d4..03faad13 100644 --- a/build.rs +++ b/build.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Build script for ECHIDNA //! //! Chapel: Chapel (.chpl) → Zig bridge → Rust diff --git a/build/guix.scm b/build/guix.scm index 66d8f0b4..d6047738 100644 --- a/build/guix.scm +++ b/build/guix.scm @@ -1,4 +1,4 @@ -;; SPDX-License-Identifier: AGPL-3.0-or-later +;; SPDX-License-Identifier: MPL-2.0 ;; echidna - Guix Package Definition ;; Development: guix shell -D -f build/guix.scm ;; Build: guix build -f build/guix.scm @@ -84,7 +84,7 @@ supports 30 prover backends including Agda, Coq, Lean 4, Isabelle, Z3, CVC5, and more, with a comprehensive verification pipeline featuring solver integrity checking, proof certificate validation, axiom tracking, and confidence scoring.") (home-page "https://github.com/hyperpolymath/echidna") - (license license:agpl3+))) + (license license:mpl2.0))) ;; For development shell echidna diff --git a/config/config.ncl b/config/config.ncl index 9be531bf..54e72f6a 100644 --- a/config/config.ncl +++ b/config/config.ncl @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell # Configuration generation diff --git a/config/solver-manifest.toml b/config/solver-manifest.toml index 02071a6c..e064fd06 100644 --- a/config/solver-manifest.toml +++ b/config/solver-manifest.toml @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Solver binary integrity manifest for ECHIDNA # SHAKE3-512 hashes of known-good solver binaries # Update hashes when upgrading solver versions diff --git a/container/.gatekeeper.yaml b/container/.gatekeeper.yaml index cb386cf8..dc0b77cc 100644 --- a/container/.gatekeeper.yaml +++ b/container/.gatekeeper.yaml @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # # Svalinn gatekeeper policy for ECHIDNA diff --git a/container/Containerfile b/container/Containerfile index 07591e35..16aa930a 100644 --- a/container/Containerfile +++ b/container/Containerfile @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # ECHIDNA Container Image (Stapeln standard) # # Multi-stage Rust build using Chainguard Wolfi base images. diff --git a/container/compose.toml b/container/compose.toml index 3b00f899..4d3880ab 100644 --- a/container/compose.toml +++ b/container/compose.toml @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # # ECHIDNA selur-compose configuration # diff --git a/container/ct-build.sh b/container/ct-build.sh index d31b0d41..fa6e497a 100755 --- a/container/ct-build.sh +++ b/container/ct-build.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # # ECHIDNA — Cerro Torre build, sign, and verify pipeline # diff --git a/container/deploy.k9.ncl b/container/deploy.k9.ncl index 21090276..3165f868 100644 --- a/container/deploy.k9.ncl +++ b/container/deploy.k9.ncl @@ -1,5 +1,5 @@ K9! -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # deploy.k9.ncl — ECHIDNA deployment component (Hunt level) let component_pedigree = { diff --git a/container/entrypoint.sh b/container/entrypoint.sh index d22853f8..1ea43dd8 100755 --- a/container/entrypoint.sh +++ b/container/entrypoint.sh @@ -1,5 +1,5 @@ #!/bin/sh -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # ECHIDNA container entrypoint set -e diff --git a/container/vordr.toml b/container/vordr.toml index d2615084..d336e420 100644 --- a/container/vordr.toml +++ b/container/vordr.toml @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # # Vordr runtime monitoring configuration for ECHIDNA diff --git a/contractile.just b/contractile.just index 6f117db6..116b621e 100644 --- a/contractile.just +++ b/contractile.just @@ -2,7 +2,7 @@ # Source directory: .machine_readable/contractiles # Re-generate with: contractile gen-just --dir .machine_readable/contractiles # -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # # HAND-AUGMENTED 2026-06-02: contractile binary not on PATH at time of # rewrite; this file was manually re-wired to match the expanded a2ml diff --git a/crates/echidna-core-spark/Cargo.toml b/crates/echidna-core-spark/Cargo.toml index c66494de..f3d25560 100644 --- a/crates/echidna-core-spark/Cargo.toml +++ b/crates/echidna-core-spark/Cargo.toml @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 [package] name = "echidna-core-spark" @@ -7,7 +7,7 @@ edition = "2021" description = "Creusot-annotated trust pipeline kernel for ECHIDNA" # crates.io requires an OSI-approved identifier; MPL-2.0 is the automatic # legal fallback for MPL-2.0 until PMPL achieves formal recognition. -license = "AGPL-3.0-or-later" +license = "MPL-2.0" authors = ["Jonathan D.A. Jewell "] repository = "https://github.com/hyperpolymath/echidna" diff --git a/crates/echidna-core-spark/rust-toolchain.toml b/crates/echidna-core-spark/rust-toolchain.toml index 97630bef..5f8b6d9d 100644 --- a/crates/echidna-core-spark/rust-toolchain.toml +++ b/crates/echidna-core-spark/rust-toolchain.toml @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # # Rust nightly toolchain for Creusot formal verification. # diff --git a/crates/echidna-core-spark/src/axiom_tracker.rs b/crates/echidna-core-spark/src/axiom_tracker.rs index f1733fa5..3bfc0da3 100644 --- a/crates/echidna-core-spark/src/axiom_tracker.rs +++ b/crates/echidna-core-spark/src/axiom_tracker.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Axiom usage tracking with Creusot proof annotations. //! diff --git a/crates/echidna-core-spark/src/lib.rs b/crates/echidna-core-spark/src/lib.rs index 6e944c9c..7be66bfa 100644 --- a/crates/echidna-core-spark/src/lib.rs +++ b/crates/echidna-core-spark/src/lib.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! # echidna-core-spark //! diff --git a/crates/echidna-core-spark/src/pareto.rs b/crates/echidna-core-spark/src/pareto.rs index 04be8aae..01ec41f0 100644 --- a/crates/echidna-core-spark/src/pareto.rs +++ b/crates/echidna-core-spark/src/pareto.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Pareto frontier computation with Creusot proof annotations. //! diff --git a/crates/echidna-core/Cargo.toml b/crates/echidna-core/Cargo.toml index eafc9c73..5aaddcfa 100644 --- a/crates/echidna-core/Cargo.toml +++ b/crates/echidna-core/Cargo.toml @@ -1,11 +1,11 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 [package] name = "echidna-core" version = "0.1.0" edition = "2021" authors = ["Jonathan D.A. Jewell "] -license = "AGPL-3.0-or-later" +license = "MPL-2.0" description = "Canonical Term / Goal / ProofState / Tactic types for ECHIDNA, re-used by vcl-ut and any future proof-exchange client without depending on the full echidna binary." repository = "https://github.com/hyperpolymath/echidna" diff --git a/crates/echidna-core/src/core.rs b/crates/echidna-core/src/core.rs index 4963f5a3..d4104ba6 100644 --- a/crates/echidna-core/src/core.rs +++ b/crates/echidna-core/src/core.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2025 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Core types and abstractions for ECHIDNA theorem proving diff --git a/crates/echidna-core/src/lib.rs b/crates/echidna-core/src/lib.rs index 66158816..f6bafb83 100644 --- a/crates/echidna-core/src/lib.rs +++ b/crates/echidna-core/src/lib.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! ECHIDNA canonical type surface. //! diff --git a/crates/echidna-core/src/types.rs b/crates/echidna-core/src/types.rs index 391b26d5..e09158b5 100644 --- a/crates/echidna-core/src/types.rs +++ b/crates/echidna-core/src/types.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Unified native type-system decorations. //! diff --git a/crates/echidna-mcp/Cargo.toml b/crates/echidna-mcp/Cargo.toml index 8a81812e..b81ed167 100644 --- a/crates/echidna-mcp/Cargo.toml +++ b/crates/echidna-mcp/Cargo.toml @@ -1,11 +1,11 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 [package] name = "echidna-mcp" version = "0.1.0" edition = "2021" authors = ["Jonathan D.A. Jewell "] -license = "AGPL-3.0-or-later" +license = "MPL-2.0" description = "Model Context Protocol server exposing ECHIDNA to AI coding agents (Claude Code, Claude API, etc.)" repository = "https://github.com/hyperpolymath/echidna" diff --git a/crates/echidna-mcp/src/main.rs b/crates/echidna-mcp/src/main.rs index 607f2f55..d6bf3074 100644 --- a/crates/echidna-mcp/src/main.rs +++ b/crates/echidna-mcp/src/main.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! ECHIDNA MCP Server — exposes the `echidna` CLI as Model Context Protocol //! tools so Claude Code / Claude API agents can call on the 105-prover diff --git a/crates/echidna-wire/Cargo.toml b/crates/echidna-wire/Cargo.toml index c075145d..59e6f62d 100644 --- a/crates/echidna-wire/Cargo.toml +++ b/crates/echidna-wire/Cargo.toml @@ -1,11 +1,11 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 [package] name = "echidna-wire" version = "0.1.0" edition = "2021" authors = ["Jonathan D.A. Jewell "] -license = "AGPL-3.0-or-later" +license = "MPL-2.0" description = "L1 IPC wire types for ECHIDNA (Cap'n Proto schemas + generated bindings)" repository = "https://github.com/hyperpolymath/echidna" build = "build.rs" diff --git a/crates/echidna-wire/build.rs b/crates/echidna-wire/build.rs index 0d069191..9ee5990d 100644 --- a/crates/echidna-wire/build.rs +++ b/crates/echidna-wire/build.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 fn main() { capnpc::CompilerCommand::new() diff --git a/crates/echidna-wire/schemas/verisim_er.capnp b/crates/echidna-wire/schemas/verisim_er.capnp index d3bf59d5..c4fbac47 100644 --- a/crates/echidna-wire/schemas/verisim_er.capnp +++ b/crates/echidna-wire/schemas/verisim_er.capnp @@ -1,5 +1,5 @@ # SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # # VeriSim ↔ ECHIDNA E-R schema (wire format). # Companion to docs/architecture/VERISIM-ER-SCHEMA.adoc. diff --git a/crates/echidna-wire/src/lib.rs b/crates/echidna-wire/src/lib.rs index 9fe0218d..d4b2eca5 100644 --- a/crates/echidna-wire/src/lib.rs +++ b/crates/echidna-wire/src/lib.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! ECHIDNA L1 wire layer — Cap'n Proto schemas and generated bindings. //! diff --git a/crates/typed_wasm/Cargo.toml b/crates/typed_wasm/Cargo.toml index 71e2aa98..dcc6b5d9 100644 --- a/crates/typed_wasm/Cargo.toml +++ b/crates/typed_wasm/Cargo.toml @@ -1,11 +1,11 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 [package] name = "typed-wasm" version = "0.1.0" edition = "2021" authors = ["Jonathan D.A. Jewell "] -license = "AGPL-3.0-or-later" +license = "MPL-2.0" description = "TypedWasm prover oracle engine for ECHIDNA — standalone domain types and engine" repository = "https://github.com/hyperpolymath/echidna" diff --git a/crates/typed_wasm/src/lib.rs b/crates/typed_wasm/src/lib.rs index 22085da1..0885e87f 100644 --- a/crates/typed_wasm/src/lib.rs +++ b/crates/typed_wasm/src/lib.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) //! TypedWasm prover oracle engine — pure, no echidna-core dependencies. diff --git a/data/synonyms/_conceptnet_seed.toml b/data/synonyms/_conceptnet_seed.toml index 2ea4e988..0d179d0e 100644 --- a/data/synonyms/_conceptnet_seed.toml +++ b/data/synonyms/_conceptnet_seed.toml @@ -1,5 +1,5 @@ # SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # # ConceptNet 5.7 pre-fetched seeds for math/CS/proof vocabulary. # diff --git a/data/synonyms/_disciplines.toml b/data/synonyms/_disciplines.toml index 7d1b56b7..4d5f048a 100644 --- a/data/synonyms/_disciplines.toml +++ b/data/synonyms/_disciplines.toml @@ -1,5 +1,5 @@ # SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # # TypeChecker disciplines cross-prover vocabulary index. # diff --git a/data/synonyms/_msc2020.toml b/data/synonyms/_msc2020.toml index ecba6c36..a9288d0e 100644 --- a/data/synonyms/_msc2020.toml +++ b/data/synonyms/_msc2020.toml @@ -1,5 +1,5 @@ # SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # # MSC2020 (Mathematics Subject Classification, 2020 revision) cross-prover # dictionary. Maps MSC code prefixes to canonical math-topic names with diff --git a/data/synonyms/_wordnet_math.toml b/data/synonyms/_wordnet_math.toml index 6f2cb3ce..0f1dc6bf 100644 --- a/data/synonyms/_wordnet_math.toml +++ b/data/synonyms/_wordnet_math.toml @@ -1,5 +1,5 @@ # SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # # WordNet math-vocabulary seeds. Hand-selected synset bridges drawn from # Princeton WordNet 3.1 noun + verb hierarchies for mathematical English. diff --git a/data/synonyms/acl2.toml b/data/synonyms/acl2.toml index 18012617..a46f4eca 100644 --- a/data/synonyms/acl2.toml +++ b/data/synonyms/acl2.toml @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # # ACL2 (+ ACL2s) decl, hint, and theory synonyms. # Schema: see data/synonyms/README.adoc. diff --git a/data/synonyms/agda.toml b/data/synonyms/agda.toml index 4115281d..1bd66620 100644 --- a/data/synonyms/agda.toml +++ b/data/synonyms/agda.toml @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # # Agda + agda-stdlib 2.0 tactic and lemma synonyms. # Schema: see data/synonyms/README.adoc. diff --git a/data/synonyms/coq.toml b/data/synonyms/coq.toml index 8e24bbd0..7f851481 100644 --- a/data/synonyms/coq.toml +++ b/data/synonyms/coq.toml @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # # Coq / Rocq tactic and lemma synonyms. # Schema: see data/synonyms/README.adoc. diff --git a/data/synonyms/dafny.toml b/data/synonyms/dafny.toml index 319c782f..620b7712 100644 --- a/data/synonyms/dafny.toml +++ b/data/synonyms/dafny.toml @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # # Dafny tactic, spec-clause, and hazard synonyms. # Schema: see data/synonyms/README.adoc. diff --git a/data/synonyms/fstar.toml b/data/synonyms/fstar.toml index e52017e7..97f8ea88 100644 --- a/data/synonyms/fstar.toml +++ b/data/synonyms/fstar.toml @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # # F* tactic, effect, and decl synonyms. # Schema: see data/synonyms/README.adoc. diff --git a/data/synonyms/hol4.toml b/data/synonyms/hol4.toml index d8708176..b8d80a99 100644 --- a/data/synonyms/hol4.toml +++ b/data/synonyms/hol4.toml @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # # HOL4 tactic and term-builder synonyms. # Schema: see data/synonyms/README.adoc. diff --git a/data/synonyms/hol_light.toml b/data/synonyms/hol_light.toml index d153eb36..bb6ac686 100644 --- a/data/synonyms/hol_light.toml +++ b/data/synonyms/hol_light.toml @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # # HOL Light tactic and term-builder synonyms. # Schema: see data/synonyms/README.adoc. diff --git a/data/synonyms/idris2.toml b/data/synonyms/idris2.toml index 528b1571..285d249e 100644 --- a/data/synonyms/idris2.toml +++ b/data/synonyms/idris2.toml @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # # Idris 2 + base / contrib library synonyms. # Schema: see data/synonyms/README.adoc. diff --git a/data/synonyms/isabelle.toml b/data/synonyms/isabelle.toml index 20242b86..a8d83817 100644 --- a/data/synonyms/isabelle.toml +++ b/data/synonyms/isabelle.toml @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # # Isabelle/HOL tactic and lemma synonyms. # Schema: see data/synonyms/README.adoc. diff --git a/data/synonyms/isabelle_afp.toml b/data/synonyms/isabelle_afp.toml index 0f76329f..7c7608b3 100644 --- a/data/synonyms/isabelle_afp.toml +++ b/data/synonyms/isabelle_afp.toml @@ -1,5 +1,5 @@ # SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # # Isabelle/HOL AFP-specific synonyms. Companion to `isabelle.toml`. # Schema: see data/synonyms/README.adoc. diff --git a/data/synonyms/lean4.toml b/data/synonyms/lean4.toml index ad41fa07..275b4038 100644 --- a/data/synonyms/lean4.toml +++ b/data/synonyms/lean4.toml @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # # Lean 4 + mathlib4 tactic and lemma synonyms. # Schema: see data/synonyms/README.adoc. diff --git a/data/synonyms/metamath.toml b/data/synonyms/metamath.toml index 90bb9422..fc5f7391 100644 --- a/data/synonyms/metamath.toml +++ b/data/synonyms/metamath.toml @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # # MetaMath set.mm tactic and lemma synonyms. # Schema: see data/synonyms/README.adoc. diff --git a/data/synonyms/mizar.toml b/data/synonyms/mizar.toml index ce7a997c..09acc8d2 100644 --- a/data/synonyms/mizar.toml +++ b/data/synonyms/mizar.toml @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # # Mizar / MML proof-step, structural, and definition keyword synonyms. # Schema: see data/synonyms/README.adoc. diff --git a/data/synonyms/why3.toml b/data/synonyms/why3.toml index 7a6dfdcd..de5571d5 100644 --- a/data/synonyms/why3.toml +++ b/data/synonyms/why3.toml @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # # Why3 declaration, spec, dispatch-backend, and transformation synonyms. # Schema: see data/synonyms/README.adoc. diff --git a/deploy/hetzner/Caddyfile b/deploy/hetzner/Caddyfile index b2eb9e67..00a8ad92 100644 --- a/deploy/hetzner/Caddyfile +++ b/deploy/hetzner/Caddyfile @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell # # TLS-terminating reverse proxy for the public ECHIDNA API. diff --git a/deploy/hetzner/Containerfile.caddy b/deploy/hetzner/Containerfile.caddy index 8d6fec4a..abe12acf 100644 --- a/deploy/hetzner/Containerfile.caddy +++ b/deploy/hetzner/Containerfile.caddy @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell # # Caddy with the mholt/caddy-ratelimit plugin (stock Caddy has no rate diff --git a/deploy/hetzner/caddy.container b/deploy/hetzner/caddy.container index 22d50ee9..8dc3d62d 100644 --- a/deploy/hetzner/caddy.container +++ b/deploy/hetzner/caddy.container @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell # # Quadlet unit for the Caddy TLS proxy fronting api.nesy-prover.dev. diff --git a/deploy/hetzner/echidna.container b/deploy/hetzner/echidna.container index 1705015a..51e3e552 100644 --- a/deploy/hetzner/echidna.container +++ b/deploy/hetzner/echidna.container @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell # # Quadlet unit for the ECHIDNA API server. diff --git a/deploy/hetzner/echidna.network b/deploy/hetzner/echidna.network index 15d273cf..5f89d806 100644 --- a/deploy/hetzner/echidna.network +++ b/deploy/hetzner/echidna.network @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell # # Shared podman network for the API + proxy pair. Referenced by name diff --git a/deploy/hetzner/env.example b/deploy/hetzner/env.example index 1ac70be8..c52415dd 100644 --- a/deploy/hetzner/env.example +++ b/deploy/hetzner/env.example @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell # # Values that vary per deployment. Nothing here is secret by design — diff --git a/docs-site/config/policy.yml b/docs-site/config/policy.yml index 848b9234..458a176a 100644 --- a/docs-site/config/policy.yml +++ b/docs-site/config/policy.yml @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # # Capability policy for ECHIDNA documentation site. # Used by http-capability-gateway for request governance. diff --git a/docs-site/lib/echidna_docs/application.ex b/docs-site/lib/echidna_docs/application.ex index e9c797db..0cec0513 100644 --- a/docs-site/lib/echidna_docs/application.ex +++ b/docs-site/lib/echidna_docs/application.ex @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 defmodule EchidnaDocs.Application do @moduledoc """ diff --git a/docs-site/lib/echidna_docs/gateway_config.ex b/docs-site/lib/echidna_docs/gateway_config.ex index 943c8a7e..5e4e3e9d 100644 --- a/docs-site/lib/echidna_docs/gateway_config.ex +++ b/docs-site/lib/echidna_docs/gateway_config.ex @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 defmodule EchidnaDocs.Router do @moduledoc """ diff --git a/docs-site/mix.exs b/docs-site/mix.exs index 3dd94501..ba23a01a 100644 --- a/docs-site/mix.exs +++ b/docs-site/mix.exs @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 defmodule EchidnaDocs.MixProject do use Mix.Project diff --git a/docs-site/src/api_explorer.ecl b/docs-site/src/api_explorer.ecl index 1814e0d9..45095453 100644 --- a/docs-site/src/api_explorer.ecl +++ b/docs-site/src/api_explorer.ecl @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // SPDX-FileCopyrightText: 2025 Jonathan D.A. Jewell //! Interactive API Explorer for ECHIDNA documentation. diff --git a/docs-site/src/app.ecl b/docs-site/src/app.ecl index 3e6c13fb..124ead97 100644 --- a/docs-site/src/app.ecl +++ b/docs-site/src/app.ecl @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // SPDX-FileCopyrightText: 2025 Jonathan D.A. Jewell //! ECHIDNA Documentation — TEA Application diff --git a/docs-site/src/routes.ecl b/docs-site/src/routes.ecl index f856906f..d0e62da1 100644 --- a/docs-site/src/routes.ecl +++ b/docs-site/src/routes.ecl @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // SPDX-FileCopyrightText: 2025 Jonathan D.A. Jewell //! Route definitions for the ECHIDNA documentation site. diff --git a/docs/DEBT.adoc b/docs/DEBT.adoc index 17a83c92..1ba1caa6 100644 --- a/docs/DEBT.adoc +++ b/docs/DEBT.adoc @@ -23,7 +23,49 @@ cost, or latent risk. ''''' -=== P0 — Licensing: RESOLVED 2026-08-07 +=== P0 — Licensing: RE-RULED 2026-10-01 (D262) — current + +*Now:* the owner re-ruled ECHIDNA onto the estate default (ruling D262, +2026-10-01): *MPL-2.0* for code, the machine-readable specification +surface and `+echidna-playground/+`, and *CC-BY-SA-4.0* for documentation. +This supersedes the 2026-08-07 AGPL-3.0-or-later split recorded below. +`+LICENSE+` is the verbatim MPL-2.0 text from mozilla.org, and every +`+Cargo.toml+` `+license+` field, the guix package, `+NOTICE+`, +`+.reuse/dep5+`, the README and the wiki now say so. + +*Deliberate interim — not drift.* The `+.a2ml+` manifests are being +converted to `+.deed+` in a follow-up PR, which rewrites their headers. +Until it lands, ten of them still carry an AGPL-3.0-or-later SPDX +header (under +`+HOL-o-extension/+`, `+audits/+` and `+training_data/+`), and +`+LICENSES/AGPL-3.0-or-later.txt+` stays so those headers still resolve +under `+reuse lint+`. The follow-up PR deletes that file. The +`+training_data/+` corpus is excluded throughout: SPDX strings inside it +are scraped content, not grants (see below). + +*Residual exposure.* Copies obtained between 2026-08-07 and 2026-10-01 +were licensed AGPL-3.0-or-later and stay so for their recipients. The +re-ruling only loosens the licence (MPL-2.0 grants a subset of the AGPL's +obligations), so it misleads no earlier recipient. + +*Verification — these should come back clean:* + +[source,bash] +---- +# no AGPL grants outside the interim .a2ml set, the corpus and licence texts +git grep -lE 'SPDX-License-Identifier:[[:space:]]*AGPL' \ + | grep -vE '\.a2ml$|^(training_data/|LICENSES/|docs/legal/)' # expect empty + +# no AGPL in packaging metadata +git grep -In '^license *= *"AGPL' -- '*.toml' # expect empty + +# GitHub detects MPL-2.0 +gh repo view hyperpolymath/echidna --json licenseInfo +---- + +''''' + +=== P0 — Licensing: the 2026-08-07 resolution (superseded by D262) *Was:* the repository stated four different licences at once — `+LICENSE+` and `+Cargo.toml+` said AGPL-3.0-or-later while 590 source @@ -64,7 +106,8 @@ to `+LICENSES/AGPL-3.0-or-later.txt+` — those lines were stopping GitHub’s licence detector matching the body, which is why the repository showed "`Other`". -*Verification — these should come back clean:* +*Verification as it stood on 2026-08-07 (historical; inverted by D262 — +use the check in the current section above):* [source,bash] ---- diff --git a/docs/PROVER_COUNT.adoc b/docs/PROVER_COUNT.adoc index 647e7693..8f6a2f80 100644 --- a/docs/PROVER_COUNT.adoc +++ b/docs/PROVER_COUNT.adoc @@ -287,11 +287,10 @@ says `+backend-matrix.yml+` reads it to build "`one job per prover`", but no such workflow exists in `+.github/workflows/+` and nothing else reads the file. The per-prover matrix CI the file was built for is therefore absent, not merely stale. -* `+scripts/gen-provers-a2ml.sh+`'s header template declares -`+AGPL-3.0-or-later+` (matching the root `+LICENSE+`) while the committed -`+provers.a2ml+` declares `+MPL-2.0+`. Left as-is: which one is correct is -a licensing decision (see the SPDX/licensing issue), and a regeneration -must not silently flip a licence line. +* `+scripts/gen-provers-a2ml.sh+`'s header template and the committed +`+provers.a2ml+` both declare `+MPL-2.0+`, matching the root `+LICENSE+`. +Resolved 2026-10-01 by the owner's MPL-2.0 re-ruling (D262); previously +the template said `+AGPL-3.0-or-later+`. Re-check by re-running the sweep: diff --git a/docs/academic/arcvix-neurosymbolic-theorem-proving.bib b/docs/academic/arcvix-neurosymbolic-theorem-proving.bib index 8870c502..0e253269 100644 --- a/docs/academic/arcvix-neurosymbolic-theorem-proving.bib +++ b/docs/academic/arcvix-neurosymbolic-theorem-proving.bib @@ -1,4 +1,4 @@ -% SPDX-License-Identifier: AGPL-3.0-or-later +% SPDX-License-Identifier: MPL-2.0 % Bibliography for "Neurosymbolic Theorem Proving" (ECHIDNA) % All references are real, verifiable publications. diff --git a/docs/academic/arcvix-neurosymbolic-theorem-proving.tex b/docs/academic/arcvix-neurosymbolic-theorem-proving.tex index d53d1cfe..77940d29 100644 --- a/docs/academic/arcvix-neurosymbolic-theorem-proving.tex +++ b/docs/academic/arcvix-neurosymbolic-theorem-proving.tex @@ -1,4 +1,4 @@ -% SPDX-License-Identifier: AGPL-3.0-or-later +% SPDX-License-Identifier: CC-BY-SA-4.0 % % ECHIDNA: Neurosymbolic Theorem Proving via Neural Guidance % with Formal Verification Guarantees across 30 Prover Backends diff --git a/docs/wiki/FAQ.md b/docs/wiki/FAQ.md index e2dff1a1..0cf14bc6 100644 --- a/docs/wiki/FAQ.md +++ b/docs/wiki/FAQ.md @@ -47,31 +47,19 @@ Canonical sources of truth: ## What licence is ECHIDNA under? -Four, applying to four parts of the tree. This is deliberate, not drift. +MPL-2.0 for the code, CC-BY-SA-4.0 for the documentation. | Part | Licence | |---|---| -| Application code — `src/`, `crates/`, `ffi/`, `proofs/`, `spark/`, `verification/`, build system, CI | **AGPL-3.0-or-later** | -| Machine-readable specification surface — `.machine_readable/`, `0-AI-MANIFEST.a2ml`, package/container manifests, OCI image labels | **MPL-2.0** | +| Code — `src/`, `crates/`, `ffi/`, `proofs/`, `spark/`, `verification/`, build system, CI | **MPL-2.0** | +| Machine-readable specification surface — `.machine_readable/`, package/container manifests, OCI image labels | **MPL-2.0** | | Documentation — `docs/`, top-level `.md` / `.adoc` | **CC-BY-SA-4.0** | -| `echidna-playground/` — the Coq-Jr sub-project | **MPL-2.0** | - -The specification surface is weak-copyleft on purpose: it is metadata and spec -material meant for interoperability, some of it on a path to standards-body -submission, where strong copyleft would obstruct adoption. Improvements to -those files stay open; implementing against them carries no obligation. - -**The combined work distributes as AGPL-3.0-or-later.** The network clause -applies: if you run a modified ECHIDNA as a service, you must offer your users -the modified source. - -**Why an MPL component is fine inside an AGPL project.** MPL-2.0 §3.3 -designates the GNU licences — including AGPL-3.0+ — as "Secondary Licenses". -MPL-covered files may therefore be combined into an AGPL work and distributed -under the AGPL, while remaining individually available under MPL. So if you -extract an MPL-2.0 part on its own — the specification surface, or -`echidna-playground/` — you may use it under MPL-2.0. The playground keeps MPL -because it carries contributions from Coq-Jr Contributors, and relicensing +| `echidna-playground/` — the Coq-Jr sub-project | **MPL-2.0** (never relicensed) | + +MPL-2.0 is file-level copyleft: if you modify one of ECHIDNA's files and +distribute it, that file stays open under MPL-2.0; combining ECHIDNA with your +own code places no obligation on the rest of your work. The playground keeps +MPL because it carries contributions from Coq-Jr Contributors, and relicensing someone else's contribution needs their consent. Files that previously offered `Palimpsest-0.6` now carry MPL-2.0: the @@ -79,8 +67,9 @@ Palimpsest Licence is MPL-2.0 with ethical provisions layered on top, so MPL-2.0 is the faithful reduction when that layer is not being asserted. Licence history: dual MIT/Palimpsest-0.6 → MPL-2.0 → AGPL-3.0-or-later for -application code, with the specification surface deliberately held at MPL-2.0 -(2026-08). Anything describing the whole project as MPL-2.0 predates that; +application code with the specification surface held at MPL-2.0 (2026-08) → +MPL-2.0 throughout (re-ruled 2026-10-01). Anything describing application code +as AGPL predates that; [`LICENSE`](https://github.com/hyperpolymath/echidna/blob/main/LICENSE) and [`NOTICE`](https://github.com/hyperpolymath/echidna/blob/main/NOTICE) are authoritative. diff --git a/docs/wiki/Home.md b/docs/wiki/Home.md index 108d675e..fb853e4d 100644 --- a/docs/wiki/Home.md +++ b/docs/wiki/Home.md @@ -4,7 +4,7 @@ **ECHIDNA** — Extensible Cognitive Hybrid Intelligence for Deductive Neural Assistance — is a trust-hardened neurosymbolic theorem-proving platform with a large multi-backend prover surface, of which **12 core backends** are exposed by the default API. Counts differ depending on what is being counted; [`docs/PROVER_COUNT.adoc`](https://github.com/hyperpolymath/echidna/blob/main/docs/PROVER_COUNT.adoc) is canonical and carries the commands that reproduce each figure. -**License**: four parts, by design — **application code** under AGPL-3.0-or-later; the **machine-readable specification surface** (`.machine_readable/`, manifests, OCI image labels) under MPL-2.0, held weak-copyleft so it stays usable for interoperability and standards submission; **documentation** under CC-BY-SA-4.0; and **`echidna-playground/`** under MPL-2.0. The combined work distributes as AGPL-3.0-or-later, so running a modified ECHIDNA as a network service obliges you to offer users the modified source. MPL §3.3 (Secondary Licenses) is what makes the MPL parts compatible inside the AGPL work. Full statement: [`NOTICE`](https://github.com/hyperpolymath/echidna/blob/main/NOTICE). +**License**: MPL-2.0 for the code, the **machine-readable specification surface** (`.machine_readable/`, manifests, OCI image labels) and **`echidna-playground/`**; **documentation** under CC-BY-SA-4.0. MPL-2.0 is file-level copyleft: changes to ECHIDNA's own files stay open, while combining them with other code carries no obligation on the rest of that work. Re-ruled 2026-10-01 from the 2026-08 AGPL split. Full statement: [`NOTICE`](https://github.com/hyperpolymath/echidna/blob/main/NOTICE). **Release history**: [`CHANGELOG.adoc`](https://github.com/hyperpolymath/echidna/blob/main/CHANGELOG.adoc); semver pin in [`Cargo.toml`](https://github.com/hyperpolymath/echidna/blob/main/Cargo.toml). diff --git a/eclexiaiser.toml b/eclexiaiser.toml index ce61c875..b5b4757d 100644 --- a/eclexiaiser.toml +++ b/eclexiaiser.toml @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # eclexiaiser manifest for echidna [project] diff --git a/examples/aspect_tagging_demo.rs b/examples/aspect_tagging_demo.rs index 56789b3f..9ce0f04e 100644 --- a/examples/aspect_tagging_demo.rs +++ b/examples/aspect_tagging_demo.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2025 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Example demonstrating aspect tagging system usage diff --git a/ffi/zig/build.zig b/ffi/zig/build.zig index bee1a1a5..cf61ab63 100644 --- a/ffi/zig/build.zig +++ b/ffi/zig/build.zig @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // // ECHIDNA FFI Build Configuration (Zig 0.15.2) // diff --git a/ffi/zig/src/boj.zig b/ffi/zig/src/boj.zig index a48e0472..42d6f3ff 100644 --- a/ffi/zig/src/boj.zig +++ b/ffi/zig/src/boj.zig @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // // ECHIDNA BoJ Client FFI — Cartridge Management Interface // diff --git a/ffi/zig/src/capnp_bridge.zig b/ffi/zig/src/capnp_bridge.zig index 90b02e97..09a0d247 100644 --- a/ffi/zig/src/capnp_bridge.zig +++ b/ffi/zig/src/capnp_bridge.zig @@ -11,7 +11,7 @@ // - Detail: call echidna_capnp_status_message(code, buf, buflen) // - Thread-local storage makes this safe for concurrent Rust threads. // -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell const std = @import("std"); diff --git a/ffi/zig/src/main.zig b/ffi/zig/src/main.zig index dff55f2c..554b5a65 100644 --- a/ffi/zig/src/main.zig +++ b/ffi/zig/src/main.zig @@ -3,7 +3,7 @@ // This module implements the C-compatible FFI declared in src/abi/Foreign.idr // All types and layouts must match the Idris2 ABI definitions. // -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 const std = @import("std"); diff --git a/ffi/zig/src/overlay.zig b/ffi/zig/src/overlay.zig index 78188e9a..5e01d2b8 100644 --- a/ffi/zig/src/overlay.zig +++ b/ffi/zig/src/overlay.zig @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // // ECHIDNA Overlay Network FFI — Tor, IPFS, Ethereum // diff --git a/ffi/zig/src/provers/atp.zig b/ffi/zig/src/provers/atp.zig index f76ffce1..07f857be 100644 --- a/ffi/zig/src/provers/atp.zig +++ b/ffi/zig/src/provers/atp.zig @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell // // Per-Prover Zig FFI: First-Order Automated Theorem Provers diff --git a/ffi/zig/src/provers/autoactive.zig b/ffi/zig/src/provers/autoactive.zig index bd343d32..3dad6f73 100644 --- a/ffi/zig/src/provers/autoactive.zig +++ b/ffi/zig/src/provers/autoactive.zig @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell // // Per-Prover Zig FFI: Auto-Active Verifiers diff --git a/ffi/zig/src/provers/constraint.zig b/ffi/zig/src/provers/constraint.zig index c1a829ec..9e00a068 100644 --- a/ffi/zig/src/provers/constraint.zig +++ b/ffi/zig/src/provers/constraint.zig @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell // // Per-Prover Zig FFI: Constraint and Optimization Solvers diff --git a/ffi/zig/src/provers/declarative.zig b/ffi/zig/src/provers/declarative.zig index 76fbb4cc..d9c11ea1 100644 --- a/ffi/zig/src/provers/declarative.zig +++ b/ffi/zig/src/provers/declarative.zig @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell // // Per-Prover Zig FFI: Declarative Provers diff --git a/ffi/zig/src/provers/interactive.zig b/ffi/zig/src/provers/interactive.zig index eb3bcfe3..70090921 100644 --- a/ffi/zig/src/provers/interactive.zig +++ b/ffi/zig/src/provers/interactive.zig @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell // // Per-Prover Zig FFI: Interactive Proof Assistants diff --git a/ffi/zig/src/provers/smt.zig b/ffi/zig/src/provers/smt.zig index 43b52e28..5430ec1a 100644 --- a/ffi/zig/src/provers/smt.zig +++ b/ffi/zig/src/provers/smt.zig @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell // // Per-Prover Zig FFI: SMT Solvers diff --git a/ffi/zig/src/provers/vcl_ut.zig b/ffi/zig/src/provers/vcl_ut.zig index f6f438c9..e4144fec 100644 --- a/ffi/zig/src/provers/vcl_ut.zig +++ b/ffi/zig/src/provers/vcl_ut.zig @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell // // VQL-UT Zig FFI: Cross-Prover Query Execution Engine diff --git a/ffi/zig/src/tentacles.zig b/ffi/zig/src/tentacles.zig index 4df11280..9f9bda30 100644 --- a/ffi/zig/src/tentacles.zig +++ b/ffi/zig/src/tentacles.zig @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // // ECHIDNA Tentacles FFI — 7-Tentacles Compiler Agent Interface // diff --git a/ffi/zig/src/typell.zig b/ffi/zig/src/typell.zig index fdd6e9b7..14b0e76c 100644 --- a/ffi/zig/src/typell.zig +++ b/ffi/zig/src/typell.zig @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // // ECHIDNA TypeLL Client FFI — Type-Level Computation Interface // diff --git a/ffi/zig/test/benchmark.zig b/ffi/zig/test/benchmark.zig index 1a71c6b0..7dfa818f 100644 --- a/ffi/zig/test/benchmark.zig +++ b/ffi/zig/test/benchmark.zig @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // // ECHIDNA Zig FFI — Benchmark Suite // diff --git a/ffi/zig/test/core_native_test.zig b/ffi/zig/test/core_native_test.zig index b784d254..d53da23f 100644 --- a/ffi/zig/test/core_native_test.zig +++ b/ffi/zig/test/core_native_test.zig @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // // ECHIDNA Core FFI — Pure Zig Native Tests // diff --git a/ffi/zig/test/integration_test.zig b/ffi/zig/test/integration_test.zig index 27b32d50..2cbf967d 100644 --- a/ffi/zig/test/integration_test.zig +++ b/ffi/zig/test/integration_test.zig @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // // ECHIDNA Zig FFI — Comprehensive Integration Tests // diff --git a/ffi/zig/test/overlay_benchmark.zig b/ffi/zig/test/overlay_benchmark.zig index 4a7d5af5..661f7a31 100644 --- a/ffi/zig/test/overlay_benchmark.zig +++ b/ffi/zig/test/overlay_benchmark.zig @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // // ECHIDNA Overlay FFI — Benchmark Suite // diff --git a/ffi/zig/test/overlay_integration_test.zig b/ffi/zig/test/overlay_integration_test.zig index 0fe21054..3bdf5068 100644 --- a/ffi/zig/test/overlay_integration_test.zig +++ b/ffi/zig/test/overlay_integration_test.zig @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // // ECHIDNA Overlay FFI — Comprehensive Integration Tests // diff --git a/ffi/zig/test/overlay_native_test.zig b/ffi/zig/test/overlay_native_test.zig index 12f6d2a2..e05388c5 100644 --- a/ffi/zig/test/overlay_native_test.zig +++ b/ffi/zig/test/overlay_native_test.zig @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // // ECHIDNA Overlay FFI — Pure Zig Integration Tests (Native Module Import) // diff --git a/fuzz/Cargo.toml b/fuzz/Cargo.toml index 6415e6eb..2ebbb2ef 100644 --- a/fuzz/Cargo.toml +++ b/fuzz/Cargo.toml @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 [package] name = "echidna-fuzz" version = "0.0.0" diff --git a/fuzz/fuzz_targets/fuzz_axiom_tracker.rs b/fuzz/fuzz_targets/fuzz_axiom_tracker.rs index 93cd9ccb..5bd3e6a4 100644 --- a/fuzz/fuzz_targets/fuzz_axiom_tracker.rs +++ b/fuzz/fuzz_targets/fuzz_axiom_tracker.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! //! Fuzz target: `AxiomTracker::scan` — no panic on arbitrary UTF-8 input //! diff --git a/fuzz/fuzz_targets/fuzz_input.rs b/fuzz/fuzz_targets/fuzz_input.rs index 22c3b645..aefae70e 100644 --- a/fuzz/fuzz_targets/fuzz_input.rs +++ b/fuzz/fuzz_targets/fuzz_input.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Generic fuzz target for arbitrary input processing #![no_main] diff --git a/fuzz/fuzz_targets/fuzz_proof_state.rs b/fuzz/fuzz_targets/fuzz_proof_state.rs index 833dcf8f..8067ac0a 100644 --- a/fuzz/fuzz_targets/fuzz_proof_state.rs +++ b/fuzz/fuzz_targets/fuzz_proof_state.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! //! Fuzz target: ProofState JSON deserialization //! diff --git a/fuzz/fuzz_targets/fuzz_trust_pipeline.rs b/fuzz/fuzz_targets/fuzz_trust_pipeline.rs index 16773824..5263669f 100644 --- a/fuzz/fuzz_targets/fuzz_trust_pipeline.rs +++ b/fuzz/fuzz_targets/fuzz_trust_pipeline.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! //! Fuzz target: `compute_trust_level` invariant //! diff --git a/generated/abi/echidna_boj.h b/generated/abi/echidna_boj.h index b2df324c..ae4023ed 100644 --- a/generated/abi/echidna_boj.h +++ b/generated/abi/echidna_boj.h @@ -1,4 +1,4 @@ -/* SPDX-License-Identifier: AGPL-3.0-or-later +/* SPDX-License-Identifier: MPL-2.0 * Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) * * ECHIDNA BoJ Client FFI — C Header (generated from Idris2 ABI / Zig FFI) diff --git a/generated/abi/echidna_ffi.h b/generated/abi/echidna_ffi.h index 16620607..ea469951 100644 --- a/generated/abi/echidna_ffi.h +++ b/generated/abi/echidna_ffi.h @@ -1,4 +1,4 @@ -/* SPDX-License-Identifier: AGPL-3.0-or-later +/* SPDX-License-Identifier: MPL-2.0 * Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) * * ECHIDNA Core FFI — C Header (generated from Idris2 ABI / Zig FFI) diff --git a/generated/abi/echidna_overlay.h b/generated/abi/echidna_overlay.h index 1bd098fa..d4802dfd 100644 --- a/generated/abi/echidna_overlay.h +++ b/generated/abi/echidna_overlay.h @@ -1,4 +1,4 @@ -/* SPDX-License-Identifier: AGPL-3.0-or-later +/* SPDX-License-Identifier: MPL-2.0 * Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) * * ECHIDNA Overlay Network FFI — C Header (generated from Idris2 ABI / Zig FFI) diff --git a/generated/abi/echidna_tentacles.h b/generated/abi/echidna_tentacles.h index 862159e3..c927a934 100644 --- a/generated/abi/echidna_tentacles.h +++ b/generated/abi/echidna_tentacles.h @@ -1,4 +1,4 @@ -/* SPDX-License-Identifier: AGPL-3.0-or-later +/* SPDX-License-Identifier: MPL-2.0 * Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) * * ECHIDNA Tentacles FFI — C Header (generated from Idris2 ABI / Zig FFI) diff --git a/generated/abi/echidna_typell.h b/generated/abi/echidna_typell.h index 3c0f964d..924e822f 100644 --- a/generated/abi/echidna_typell.h +++ b/generated/abi/echidna_typell.h @@ -1,4 +1,4 @@ -/* SPDX-License-Identifier: AGPL-3.0-or-later +/* SPDX-License-Identifier: MPL-2.0 * Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) * * ECHIDNA TypeLL Client FFI — C Header (generated from Idris2 ABI / Zig FFI) diff --git a/generated/alloyiser/run-analysis.sh b/generated/alloyiser/run-analysis.sh index 9bf9007f..d3d322aa 100644 --- a/generated/alloyiser/run-analysis.sh +++ b/generated/alloyiser/run-analysis.sh @@ -1,5 +1,5 @@ #!/bin/sh -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Generated by alloyiser — Alloy analysis script # Requires: java, alloy.jar diff --git a/guix-channel/echidna.scm b/guix-channel/echidna.scm index 8095eb58..5205ea2e 100644 --- a/guix-channel/echidna.scm +++ b/guix-channel/echidna.scm @@ -1,4 +1,4 @@ -;;; SPDX-License-Identifier: AGPL-3.0-or-later +;;; SPDX-License-Identifier: MPL-2.0 ;;; SPDX-FileCopyrightText: 2025 Jonathan D.A. Jewell ;;; ;;; GNU Guix channel for ECHIDNA packages. diff --git a/guix/echidna/packages.scm b/guix/echidna/packages.scm index 03c5e791..714fd04d 100644 --- a/guix/echidna/packages.scm +++ b/guix/echidna/packages.scm @@ -1,4 +1,4 @@ -;; SPDX-License-Identifier: AGPL-3.0-or-later +;; SPDX-License-Identifier: MPL-2.0 ;; Guix channel module exporting the echidna package (define-module (echidna packages) #:use-module (guix packages) diff --git a/hooks/pre-commit b/hooks/pre-commit index bc505093..db881a89 100755 --- a/hooks/pre-commit +++ b/hooks/pre-commit @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell # # ECHIDNA pre-commit hook — satisfies the RSR hooks/ requirement diff --git a/hooks/pre-push b/hooks/pre-push index a92309e0..5ca7b025 100755 --- a/hooks/pre-push +++ b/hooks/pre-push @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell # # ECHIDNA pre-push hook — RSR compliance gate (RSR-H12). diff --git a/k9iser.toml b/k9iser.toml index 53cd7283..1d1b33b9 100644 --- a/k9iser.toml +++ b/k9iser.toml @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) # # k9iser manifest for echidna diff --git a/manifests/live-provers.scm b/manifests/live-provers.scm index 03b73c1e..e8a59d82 100644 --- a/manifests/live-provers.scm +++ b/manifests/live-provers.scm @@ -1,4 +1,4 @@ -;; SPDX-License-Identifier: AGPL-3.0-or-later +;; SPDX-License-Identifier: MPL-2.0 ;; SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell ;; ;; ECHIDNA — Live-Prover CI Manifest (Guix, PRIMARY) diff --git a/meta-checker/echidna-meta.agda-lib b/meta-checker/echidna-meta.agda-lib index f0977e0c..283ffd07 100644 --- a/meta-checker/echidna-meta.agda-lib +++ b/meta-checker/echidna-meta.agda-lib @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- Agda library file for ECHIDNA meta-checker name: echidna-meta depend: standard-library diff --git a/meta-checker/src/Echidna/AxiomSafety.agda b/meta-checker/src/Echidna/AxiomSafety.agda index 016e915d..153c0c73 100644 --- a/meta-checker/src/Echidna/AxiomSafety.agda +++ b/meta-checker/src/Echidna/AxiomSafety.agda @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -- -- AxiomSafety.agda — Formal verification of ECHIDNA's axiom tracking system diff --git a/meta-checker/src/Echidna/AxiomTrackerCompleteness.agda b/meta-checker/src/Echidna/AxiomTrackerCompleteness.agda index aff6e2fb..1191018c 100644 --- a/meta-checker/src/Echidna/AxiomTrackerCompleteness.agda +++ b/meta-checker/src/Echidna/AxiomTrackerCompleteness.agda @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -- -- AxiomTrackerCompleteness.agda — Formal proof that every registered axiom diff --git a/meta-checker/src/Echidna/Dispatch.agda b/meta-checker/src/Echidna/Dispatch.agda index 7d3c7c46..6b8ba124 100644 --- a/meta-checker/src/Echidna/Dispatch.agda +++ b/meta-checker/src/Echidna/Dispatch.agda @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -- -- Dispatch.agda — Formal verification of ECHIDNA's dispatch pipeline diff --git a/meta-checker/src/Echidna/MetaChecker.agda b/meta-checker/src/Echidna/MetaChecker.agda index 567af8d8..c6eb3e72 100644 --- a/meta-checker/src/Echidna/MetaChecker.agda +++ b/meta-checker/src/Echidna/MetaChecker.agda @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -- -- MetaChecker.agda — Top-level module for ECHIDNA's formal meta-verification diff --git a/meta-checker/src/Echidna/Portfolio.agda b/meta-checker/src/Echidna/Portfolio.agda index d7776e36..146a5357 100644 --- a/meta-checker/src/Echidna/Portfolio.agda +++ b/meta-checker/src/Echidna/Portfolio.agda @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -- -- Portfolio.agda — Formal verification of ECHIDNA's portfolio solving diff --git a/meta-checker/src/Echidna/TrustLevel.agda b/meta-checker/src/Echidna/TrustLevel.agda index db7bc8f9..b6e7942f 100644 --- a/meta-checker/src/Echidna/TrustLevel.agda +++ b/meta-checker/src/Echidna/TrustLevel.agda @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -- -- TrustLevel.agda — Formal verification of ECHIDNA's 5-level trust hierarchy diff --git a/metrics/MetricsSuite.jl b/metrics/MetricsSuite.jl index 034d7f50..7b2b76a9 100644 --- a/metrics/MetricsSuite.jl +++ b/metrics/MetricsSuite.jl @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Copyright (c) 2026 Jonathan D.A. Jewell # # MetricsSuite.jl — Umbrella module wiring every metric against a diff --git a/metrics/alignment_rate.jl b/metrics/alignment_rate.jl index a2187385..a079bb73 100644 --- a/metrics/alignment_rate.jl +++ b/metrics/alignment_rate.jl @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Copyright (c) 2026 Jonathan D.A. Jewell # # alignment_rate.jl — Fraction of theorems whose normalised name is diff --git a/metrics/corpus_loader.jl b/metrics/corpus_loader.jl index fbefe37a..81c8e503 100644 --- a/metrics/corpus_loader.jl +++ b/metrics/corpus_loader.jl @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Copyright (c) 2026 Jonathan D.A. Jewell # # corpus_loader.jl — Single authoritative pass over per-prover JSONL. diff --git a/metrics/floor_progress.jl b/metrics/floor_progress.jl index 60dbca5f..85488bd0 100644 --- a/metrics/floor_progress.jl +++ b/metrics/floor_progress.jl @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Copyright (c) 2026 Jonathan D.A. Jewell # # floor_progress.jl — Append-only ledger of Phase-1 progress toward the diff --git a/metrics/heaps_beta.jl b/metrics/heaps_beta.jl index 6e37d2dc..8240cd72 100644 --- a/metrics/heaps_beta.jl +++ b/metrics/heaps_beta.jl @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Copyright (c) 2026 Jonathan D.A. Jewell # # heaps_beta.jl — Fit Heap's law V ≈ k · N^β on the flattened corpus. diff --git a/metrics/msc_taxonomy_coverage.jl b/metrics/msc_taxonomy_coverage.jl index 962d4656..5ba101d1 100644 --- a/metrics/msc_taxonomy_coverage.jl +++ b/metrics/msc_taxonomy_coverage.jl @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Copyright (c) 2026 Jonathan D.A. Jewell # # msc_taxonomy_coverage.jl — Approximate coverage of the MSC 2020 diff --git a/metrics/oov_rate.jl b/metrics/oov_rate.jl index 27f2496f..744a1c15 100644 --- a/metrics/oov_rate.jl +++ b/metrics/oov_rate.jl @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Copyright (c) 2026 Jonathan D.A. Jewell # # oov_rate.jl — Fraction of corpus tokens NOT in CANON seed. diff --git a/metrics/prover_floor.jl b/metrics/prover_floor.jl index 338d90b5..e0f70f96 100644 --- a/metrics/prover_floor.jl +++ b/metrics/prover_floor.jl @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Copyright (c) 2026 Jonathan D.A. Jewell # # prover_floor.jl — Smallest per-prover proof count in the authoritative diff --git a/metrics/run_all.jl b/metrics/run_all.jl index fe02438d..92501732 100644 --- a/metrics/run_all.jl +++ b/metrics/run_all.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Copyright (c) 2026 Jonathan D.A. Jewell # # run_all.jl — Driver: load corpus, run all eight metrics, POST to diff --git a/metrics/tactic_cluster_purity.jl b/metrics/tactic_cluster_purity.jl index 3704d3ec..36e1f332 100644 --- a/metrics/tactic_cluster_purity.jl +++ b/metrics/tactic_cluster_purity.jl @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Copyright (c) 2026 Jonathan D.A. Jewell # # tactic_cluster_purity.jl — Per-prover distinctiveness of tactic diff --git a/metrics/triangulation_rate.jl b/metrics/triangulation_rate.jl index e9d7a838..4613572f 100644 --- a/metrics/triangulation_rate.jl +++ b/metrics/triangulation_rate.jl @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Copyright (c) 2026 Jonathan D.A. Jewell # # triangulation_rate.jl — Fraction of theorems (by normalised name) that diff --git a/metrics/verisim_sink.jl b/metrics/verisim_sink.jl index 3efb01f9..38a08d26 100644 --- a/metrics/verisim_sink.jl +++ b/metrics/verisim_sink.jl @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Copyright (c) 2026 Jonathan D.A. Jewell # # verisim_sink.jl — Post metric rows to VeriSimDB. diff --git a/metrics/zipf_s.jl b/metrics/zipf_s.jl index 278d88e6..700ae724 100644 --- a/metrics/zipf_s.jl +++ b/metrics/zipf_s.jl @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Copyright (c) 2026 Jonathan D.A. Jewell # # zipf_s.jl — Fit a Zipf exponent to the theorem-name frequency diff --git a/proofs/agda/AxiomMonotonicity.agda b/proofs/agda/AxiomMonotonicity.agda index ac13722a..a7e7f8e3 100644 --- a/proofs/agda/AxiomMonotonicity.agda +++ b/proofs/agda/AxiomMonotonicity.agda @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- AxiomMonotonicity.agda — danger-level order and monotonicity of maxDanger. -- -- Models ECHIDNA's 4-tier axiom-danger system (Safe < Noted < Warning < Reject) diff --git a/proofs/agda/CertificateChain.agda b/proofs/agda/CertificateChain.agda index f51b66c2..f917a681 100644 --- a/proofs/agda/CertificateChain.agda +++ b/proofs/agda/CertificateChain.agda @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- CertificateChain.agda — transitivity and vacuous validity of cert chains. -- -- Models a certificate chain as a List CertStep where each CertStep diff --git a/proofs/agda/DispatchOrdering.agda b/proofs/agda/DispatchOrdering.agda index 5cb1b0a4..ec6eafce 100644 --- a/proofs/agda/DispatchOrdering.agda +++ b/proofs/agda/DispatchOrdering.agda @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- DispatchOrdering.agda — strict total order on the 6-stage trust pipeline. -- -- Models ECHIDNA's dispatch pipeline stages (dispatch.rs) as a Fin 6 type and diff --git a/proofs/agda/IdentityLaws.agda b/proofs/agda/IdentityLaws.agda index 3bcbda2b..584e3b9f 100644 --- a/proofs/agda/IdentityLaws.agda +++ b/proofs/agda/IdentityLaws.agda @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- IdentityLaws.agda — trivial proofs that compile cleanly against -- agda-stdlib v2.3. Exists to exercise the echidnabot agda runner -- with a known-good file alongside the pre-existing (broken) corpus. diff --git a/proofs/agda/List.agda b/proofs/agda/List.agda index 6bc0f613..247a75bf 100644 --- a/proofs/agda/List.agda +++ b/proofs/agda/List.agda @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- List.agda — list-manipulation proofs over agda-stdlib. module List where diff --git a/proofs/agda/Nat.agda b/proofs/agda/Nat.agda index d3b6fa2f..8623b163 100644 --- a/proofs/agda/Nat.agda +++ b/proofs/agda/Nat.agda @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- Nat.agda — natural number arithmetic proofs over agda-stdlib. module Nat where diff --git a/proofs/agda/ParallelSoundness.agda b/proofs/agda/ParallelSoundness.agda index a15ccf77..8fdf19b9 100644 --- a/proofs/agda/ParallelSoundness.agda +++ b/proofs/agda/ParallelSoundness.agda @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- ParallelSoundness.agda — Speculative parallel proof-search soundness. -- -- Models the Chapel `parallelProofSearchSpeculative` function diff --git a/proofs/agda/PortfolioConsistency.agda b/proofs/agda/PortfolioConsistency.agda index 5eaf1637..2829719a 100644 --- a/proofs/agda/PortfolioConsistency.agda +++ b/proofs/agda/PortfolioConsistency.agda @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- PortfolioConsistency.agda — All-true implies Any-true for non-empty Vec Bool. -- -- Models an ECHIDNA portfolio of n independent prover results as a diff --git a/proofs/agda/ProofComposition.agda b/proofs/agda/ProofComposition.agda index dbc52254..2cf2feaf 100644 --- a/proofs/agda/ProofComposition.agda +++ b/proofs/agda/ProofComposition.agda @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- ProofComposition.agda — axiom-set consistency for composed proofs. -- -- Simplified version: proves that combining two consistent axiom diff --git a/proofs/agda/Propositional.agda b/proofs/agda/Propositional.agda index 65e237e6..3ef67478 100644 --- a/proofs/agda/Propositional.agda +++ b/proofs/agda/Propositional.agda @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- Propositional.agda — intuitionistic propositional-logic proofs. module Propositional where diff --git a/proofs/agda/SoundnessPreservation.agda b/proofs/agda/SoundnessPreservation.agda index 90dd1c26..0cbc8ddb 100644 --- a/proofs/agda/SoundnessPreservation.agda +++ b/proofs/agda/SoundnessPreservation.agda @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- SoundnessPreservation.agda — composed proofs are sound when axiom sets -- are conflict-free. -- diff --git a/proofs/agda/TrustLattice.agda b/proofs/agda/TrustLattice.agda index ad9f98ed..2552c593 100644 --- a/proofs/agda/TrustLattice.agda +++ b/proofs/agda/TrustLattice.agda @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- TrustLattice.agda — bounded poset on TrustLevel (5-element type). -- -- Models the ECHIDNA trust hierarchy as an ordered type and proves the diff --git a/proofs/agda/echidna-proofs.agda-lib b/proofs/agda/echidna-proofs.agda-lib index 1cda55e6..7748106d 100644 --- a/proofs/agda/echidna-proofs.agda-lib +++ b/proofs/agda/echidna-proofs.agda-lib @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- Agda library file for ECHIDNA dogfood proofs name: echidna-proofs depend: standard-library diff --git a/proofs/coq/algebra/GroupTheory.v b/proofs/coq/algebra/GroupTheory.v index 9f3646f0..111cfbb0 100644 --- a/proofs/coq/algebra/GroupTheory.v +++ b/proofs/coq/algebra/GroupTheory.v @@ -1,4 +1,4 @@ -(* SPDX-License-Identifier: AGPL-3.0-or-later +(* SPDX-License-Identifier: MPL-2.0 Copyright (c) 2026 ECHIDNA Project Group Theory: self-contained abstract algebra for training corpus. diff --git a/proofs/dimacs/graph_3color.cnf b/proofs/dimacs/graph_3color.cnf index fdc411cf..45360ae6 100644 --- a/proofs/dimacs/graph_3color.cnf +++ b/proofs/dimacs/graph_3color.cnf @@ -1,4 +1,4 @@ -c SPDX-License-Identifier: AGPL-3.0-or-later +c SPDX-License-Identifier: MPL-2.0 c 3-colouring of a triangle (K_3): vertices v1,v2,v3, colours r,g,b c Variables 1..9 indexed as (v-1)*3+c for v∈{1,2,3}, c∈{1=r,2=g,3=b} c Each vertex gets at least one colour: diff --git a/proofs/dimacs/pigeonhole_3_2.cnf b/proofs/dimacs/pigeonhole_3_2.cnf index a7b93126..b1688005 100644 --- a/proofs/dimacs/pigeonhole_3_2.cnf +++ b/proofs/dimacs/pigeonhole_3_2.cnf @@ -1,4 +1,4 @@ -c SPDX-License-Identifier: AGPL-3.0-or-later +c SPDX-License-Identifier: MPL-2.0 c Pigeonhole: 3 pigeons in 2 holes (UNSAT) c Variables: p_i_h means pigeon i in hole h; vars 1..6 for (1,1)(1,2)(2,1)(2,2)(3,1)(3,2) c Each pigeon in some hole: diff --git a/proofs/dimacs/satisfiable_basic.cnf b/proofs/dimacs/satisfiable_basic.cnf index 03cdb944..0d1f6580 100644 --- a/proofs/dimacs/satisfiable_basic.cnf +++ b/proofs/dimacs/satisfiable_basic.cnf @@ -1,4 +1,4 @@ -c SPDX-License-Identifier: AGPL-3.0-or-later +c SPDX-License-Identifier: MPL-2.0 c Basic satisfiable instance: (x1 OR x2) AND (NOT x1 OR x2) AND (x1 OR NOT x2) c Expected: SATISFIABLE (solution x1=T, x2=T) p cnf 2 3 diff --git a/proofs/dimacs/unsatisfiable_basic.cnf b/proofs/dimacs/unsatisfiable_basic.cnf index 9f81704b..9de996ca 100644 --- a/proofs/dimacs/unsatisfiable_basic.cnf +++ b/proofs/dimacs/unsatisfiable_basic.cnf @@ -1,4 +1,4 @@ -c SPDX-License-Identifier: AGPL-3.0-or-later +c SPDX-License-Identifier: MPL-2.0 c Contradiction: x1 AND NOT x1 c Expected: UNSATISFIABLE p cnf 1 2 diff --git a/proofs/dimacs/xor_chain.cnf b/proofs/dimacs/xor_chain.cnf index 2765133f..1e1fd104 100644 --- a/proofs/dimacs/xor_chain.cnf +++ b/proofs/dimacs/xor_chain.cnf @@ -1,4 +1,4 @@ -c SPDX-License-Identifier: AGPL-3.0-or-later +c SPDX-License-Identifier: MPL-2.0 c XOR chain: x1 ⊕ x2 = 1, x2 ⊕ x3 = 1, x3 ⊕ x4 = 1 (SATISFIABLE) c Encoded as CNF: for each XOR clause, two 2-clauses p cnf 4 6 diff --git a/proofs/isabelle/ROOT b/proofs/isabelle/ROOT index 9d1cb23f..d72693be 100644 --- a/proofs/isabelle/ROOT +++ b/proofs/isabelle/ROOT @@ -1,4 +1,4 @@ -(* SPDX-License-Identifier: AGPL-3.0-or-later *) +(* SPDX-License-Identifier: MPL-2.0 *) (* ROOT - Isabelle session for the ECHIDNA self-proof corpus. diff --git a/proofs/isabelle/algebra/GroupTheory.thy b/proofs/isabelle/algebra/GroupTheory.thy index b47df923..59faef3d 100644 --- a/proofs/isabelle/algebra/GroupTheory.thy +++ b/proofs/isabelle/algebra/GroupTheory.thy @@ -1,4 +1,4 @@ -(** SPDX-License-Identifier: AGPL-3.0-or-later +(** SPDX-License-Identifier: MPL-2.0 Copyright (c) 2026 ECHIDNA Project Group Theory Examples for ML Training Corpus *) diff --git a/proofs/lean/Basic.lean b/proofs/lean/Basic.lean index 9a863590..c9337b75 100644 --- a/proofs/lean/Basic.lean +++ b/proofs/lean/Basic.lean @@ -1,6 +1,6 @@ /- SPDX-FileCopyrightText: 2025 ECHIDNA Project Team -SPDX-License-Identifier: AGPL-3.0-or-later +SPDX-License-Identifier: MPL-2.0 Basic Lean 4 Proofs - Foundation Level diff --git a/proofs/lean/ECHIDNA.lean b/proofs/lean/ECHIDNA.lean index 9841f765..348a6850 100644 --- a/proofs/lean/ECHIDNA.lean +++ b/proofs/lean/ECHIDNA.lean @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- Copyright (c) 2025 ECHIDNA Project Team -- ECHIDNA proof library root module — umbrella import of the whole corpus. import Basic diff --git a/proofs/lean/List.lean b/proofs/lean/List.lean index cab65307..e286d96e 100644 --- a/proofs/lean/List.lean +++ b/proofs/lean/List.lean @@ -1,6 +1,6 @@ /- SPDX-FileCopyrightText: 2025 ECHIDNA Project Team -SPDX-License-Identifier: AGPL-3.0-or-later +SPDX-License-Identifier: MPL-2.0 List Proofs in Lean 4 diff --git a/proofs/lean/Nat.lean b/proofs/lean/Nat.lean index 9a65db96..660ffd97 100644 --- a/proofs/lean/Nat.lean +++ b/proofs/lean/Nat.lean @@ -1,6 +1,6 @@ /- SPDX-FileCopyrightText: 2025 Jonathan D.A. Jewell -SPDX-License-Identifier: AGPL-3.0-or-later +SPDX-License-Identifier: MPL-2.0 Natural Number Proofs in Lean 4 diff --git a/proofs/lean/Propositional.lean b/proofs/lean/Propositional.lean index 88083fae..a6d85fff 100644 --- a/proofs/lean/Propositional.lean +++ b/proofs/lean/Propositional.lean @@ -1,6 +1,6 @@ /- SPDX-FileCopyrightText: 2025 ECHIDNA Project Team -SPDX-License-Identifier: AGPL-3.0-or-later +SPDX-License-Identifier: MPL-2.0 Propositional Logic Proofs in Lean 4 diff --git a/proofs/lean/algebra/GroupTheory.lean b/proofs/lean/algebra/GroupTheory.lean index fcce0ac8..5b819cb5 100644 --- a/proofs/lean/algebra/GroupTheory.lean +++ b/proofs/lean/algebra/GroupTheory.lean @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- Copyright (c) 2026 ECHIDNA Project -- Group Theory: self-contained abstract algebra for training corpus. -- diff --git a/proofs/metamath/broken.mm b/proofs/metamath/broken.mm index 48d34bf8..8c2659fc 100644 --- a/proofs/metamath/broken.mm +++ b/proofs/metamath/broken.mm @@ -1,4 +1,4 @@ -$( SPDX-License-Identifier: AGPL-3.0-or-later $) +$( SPDX-License-Identifier: MPL-2.0 $) $c wff |- $. $v P $. wp $f wff P $. diff --git a/proofs/metamath/tiny.mm b/proofs/metamath/tiny.mm index 19675501..3a466f18 100644 --- a/proofs/metamath/tiny.mm +++ b/proofs/metamath/tiny.mm @@ -1,4 +1,4 @@ -$( SPDX-License-Identifier: AGPL-3.0-or-later $) +$( SPDX-License-Identifier: MPL-2.0 $) $( tiny.mm -- a very small self-contained Metamath proof $) $( Constants and variables $) diff --git a/proofs/tptp/contradiction.p b/proofs/tptp/contradiction.p index fbedb94d..124461a7 100644 --- a/proofs/tptp/contradiction.p +++ b/proofs/tptp/contradiction.p @@ -1,5 +1,5 @@ %----------------------------------------------------------------------------- -% SPDX-License-Identifier: AGPL-3.0-or-later +% SPDX-License-Identifier: MPL-2.0 % File : contradiction.p % Status : CounterSatisfiable % Claim : Deliberately unprovable: asserting P and ¬P. diff --git a/proofs/tptp/disjunction_elim.p b/proofs/tptp/disjunction_elim.p index b238bcc7..21bed830 100644 --- a/proofs/tptp/disjunction_elim.p +++ b/proofs/tptp/disjunction_elim.p @@ -1,5 +1,5 @@ %----------------------------------------------------------------------------- -% SPDX-License-Identifier: AGPL-3.0-or-later +% SPDX-License-Identifier: MPL-2.0 % File : disjunction_elim.p % Status : Theorem % Claim : Disjunction elimination — from P∨Q, P→R, Q→R, conclude R. diff --git a/proofs/tptp/double_negation.p b/proofs/tptp/double_negation.p index 64beb66c..5bf4aced 100644 --- a/proofs/tptp/double_negation.p +++ b/proofs/tptp/double_negation.p @@ -1,5 +1,5 @@ %----------------------------------------------------------------------------- -% SPDX-License-Identifier: AGPL-3.0-or-later +% SPDX-License-Identifier: MPL-2.0 % File : double_negation.p % Status : Theorem % Claim : ¬¬P → P (classical double-negation elimination). diff --git a/proofs/tptp/group_left_identity.p b/proofs/tptp/group_left_identity.p index b80c5081..3a71fb84 100644 --- a/proofs/tptp/group_left_identity.p +++ b/proofs/tptp/group_left_identity.p @@ -1,5 +1,5 @@ %----------------------------------------------------------------------------- -% SPDX-License-Identifier: AGPL-3.0-or-later +% SPDX-License-Identifier: MPL-2.0 % File : group_left_identity.p % Status : Theorem % Claim : In a group, e is also a right identity (proved from left-identity diff --git a/proofs/tptp/modus_ponens.p b/proofs/tptp/modus_ponens.p index 2b766294..3673a62f 100644 --- a/proofs/tptp/modus_ponens.p +++ b/proofs/tptp/modus_ponens.p @@ -1,5 +1,5 @@ %----------------------------------------------------------------------------- -% SPDX-License-Identifier: AGPL-3.0-or-later +% SPDX-License-Identifier: MPL-2.0 % File : modus_ponens.p % Syntax : TPTP FOF (First-Order Form) % Status : Theorem diff --git a/proofs/tptp/socrates.p b/proofs/tptp/socrates.p index c5d2880b..1b7e6e74 100644 --- a/proofs/tptp/socrates.p +++ b/proofs/tptp/socrates.p @@ -1,5 +1,5 @@ %----------------------------------------------------------------------------- -% SPDX-License-Identifier: AGPL-3.0-or-later +% SPDX-License-Identifier: MPL-2.0 % File : socrates.p % Status : Theorem % Claim : Classical syllogism: all humans are mortal; Socrates is human; diff --git a/proofs/tptp/symmetry_eq.p b/proofs/tptp/symmetry_eq.p index 5f73eb47..d90554d6 100644 --- a/proofs/tptp/symmetry_eq.p +++ b/proofs/tptp/symmetry_eq.p @@ -1,5 +1,5 @@ %----------------------------------------------------------------------------- -% SPDX-License-Identifier: AGPL-3.0-or-later +% SPDX-License-Identifier: MPL-2.0 % File : symmetry_eq.p % Status : Theorem % Claim : Equality is symmetric: a=b → b=a (follows from equality axioms). diff --git a/proofs/tptp/transitivity.p b/proofs/tptp/transitivity.p index a856cf50..4ab52149 100644 --- a/proofs/tptp/transitivity.p +++ b/proofs/tptp/transitivity.p @@ -1,5 +1,5 @@ %----------------------------------------------------------------------------- -% SPDX-License-Identifier: AGPL-3.0-or-later +% SPDX-License-Identifier: MPL-2.0 % File : transitivity.p % Status : Theorem % Claim : Less-than is transitive: a # # ECHIDNA canonical Cap'n Proto wire schemas (L1 IPC) diff --git a/scripts/a2ml_emit.jl b/scripts/a2ml_emit.jl index 0b8d0984..988267a1 100644 --- a/scripts/a2ml_emit.jl +++ b/scripts/a2ml_emit.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) # # A2ML emitter for training-corpus records. @@ -130,7 +130,7 @@ function write_records_file( header::Union{AbstractString,Nothing}=nothing, ) open(path, "w") do io - println(io, "# SPDX-License-Identifier: AGPL-3.0-or-later") + println(io, "# SPDX-License-Identifier: MPL-2.0") println(io, "# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath)") if header !== nothing for line in split(header, '\n') diff --git a/scripts/align_premises.jl b/scripts/align_premises.jl index 706b537d..64b50250 100755 --- a/scripts/align_premises.jl +++ b/scripts/align_premises.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath) # # align_premises.jl — rebuild training_data/premises_COMPLETE.jsonl with proof_ids diff --git a/scripts/balance_corpus.jl b/scripts/balance_corpus.jl index 1f2df7f1..78c090b2 100644 --- a/scripts/balance_corpus.jl +++ b/scripts/balance_corpus.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2026 ECHIDNA Project Team # # Balanced corpus extraction - ensure minimum proofs from each prover. diff --git a/scripts/ban-npm.sh b/scripts/ban-npm.sh index 81516682..4bc8a679 100755 --- a/scripts/ban-npm.sh +++ b/scripts/ban-npm.sh @@ -3,7 +3,7 @@ # ECHIDNA NPM Ban Enforcement Script # This script checks for and blocks npm/node usage # -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 set -euo pipefail diff --git a/scripts/collect-field-signal.sh b/scripts/collect-field-signal.sh index 1b1eaf2b..f229edec 100755 --- a/scripts/collect-field-signal.sh +++ b/scripts/collect-field-signal.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Collect field signal data for STATE.a2ml [field-signal] section # Runs weekly to track: cold-start latency, corpus growth, vulnerability count, test coverage diff --git a/scripts/extract_abc.jl b/scripts/extract_abc.jl index acddc9d6..0f9803ea 100644 --- a/scripts/extract_abc.jl +++ b/scripts/extract_abc.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Extract ABC hardware-verification problems (AIGER / BLIF). # Vendor: git clone https://github.com/berkeley-abc/abc external_corpora/abc using JSON3, Dates diff --git a/scripts/extract_abella.jl b/scripts/extract_abella.jl index 79027c3b..79df7500 100644 --- a/scripts/extract_abella.jl +++ b/scripts/extract_abella.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath) # # Extract proofs from the Abella examples corpus. Abella is the canonical diff --git a/scripts/extract_acl2.jl b/scripts/extract_acl2.jl index 60f9cf86..52e4ae9d 100644 --- a/scripts/extract_acl2.jl +++ b/scripts/extract_acl2.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) # # Extract proofs from ACL2 community books and convert to ECHIDNA training format. diff --git a/scripts/extract_acl2s.jl b/scripts/extract_acl2s.jl index 37712d18..130aba0e 100644 --- a/scripts/extract_acl2s.jl +++ b/scripts/extract_acl2s.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath) # # Extract proofs from ACL2s examples. diff --git a/scripts/extract_afp.jl b/scripts/extract_afp.jl index 2aad31bb..1c52f4d8 100644 --- a/scripts/extract_afp.jl +++ b/scripts/extract_afp.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) # # extract_afp.jl — Mine the Archive of Formal Proofs (Isabelle/HOL) diff --git a/scripts/extract_agda.jl b/scripts/extract_agda.jl index 918a4dc2..b21bd05f 100644 --- a/scripts/extract_agda.jl +++ b/scripts/extract_agda.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) # # extract_agda.jl — Mine the locally-vendored Agda standard library diff --git a/scripts/extract_all.sh b/scripts/extract_all.sh index 45e8cded..c647df16 100755 --- a/scripts/extract_all.sh +++ b/scripts/extract_all.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell # # ECHIDNA — run every scripts/extract_*.jl once, non-interactively. diff --git a/scripts/extract_alloy.jl b/scripts/extract_alloy.jl index cbf72e0d..d738e66a 100644 --- a/scripts/extract_alloy.jl +++ b/scripts/extract_alloy.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Extract Alloy relational-model-finder constraints from alloytools examples. # Vendor: git clone https://github.com/AlloyTools/models external_corpora/alloy using JSON3, Dates diff --git a/scripts/extract_arend.jl b/scripts/extract_arend.jl index 61b30d0d..2fa3aa7c 100644 --- a/scripts/extract_arend.jl +++ b/scripts/extract_arend.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Extract proofs / declarations / .ard files from Arend. # Vendor location: external_corpora/arend/ using JSON3, Dates diff --git a/scripts/extract_athena.jl b/scripts/extract_athena.jl index cbb7f8c8..60c3289a 100644 --- a/scripts/extract_athena.jl +++ b/scripts/extract_athena.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Extract proofs / declarations / .ath files from Athena. # Vendor location: external_corpora/athena/ using JSON3, Dates diff --git a/scripts/extract_boogie.jl b/scripts/extract_boogie.jl index c7c94aae..9be83251 100644 --- a/scripts/extract_boogie.jl +++ b/scripts/extract_boogie.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath) # # Extract verification conditions from Boogie .bpl files. diff --git a/scripts/extract_cameleer.jl b/scripts/extract_cameleer.jl index feb88b7a..1e748413 100644 --- a/scripts/extract_cameleer.jl +++ b/scripts/extract_cameleer.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath) # # Extract proofs from Cameleer examples (OCaml with GOSPEL contracts). diff --git a/scripts/extract_cbmc.jl b/scripts/extract_cbmc.jl index 1af0cf77..9977f5ab 100644 --- a/scripts/extract_cbmc.jl +++ b/scripts/extract_cbmc.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Extract CBMC bounded-model-check problems from diffblue/cbmc regression tests. # Vendor: git clone https://github.com/diffblue/cbmc external_corpora/cbmc using JSON3, Dates diff --git a/scripts/extract_coqgym.jl b/scripts/extract_coqgym.jl index fcfbdb25..a422bea6 100644 --- a/scripts/extract_coqgym.jl +++ b/scripts/extract_coqgym.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2026 ECHIDNA Project Team # # Extract proofs from the CoqGym corpus and convert to ECHIDNA training diff --git a/scripts/extract_dafny.jl b/scripts/extract_dafny.jl index d7d3fe7c..e17f1592 100644 --- a/scripts/extract_dafny.jl +++ b/scripts/extract_dafny.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) # # Extract proofs from Dafny test suite and convert to ECHIDNA training format. diff --git a/scripts/extract_dedukti.jl b/scripts/extract_dedukti.jl index 396ed0c2..b0244d65 100644 --- a/scripts/extract_dedukti.jl +++ b/scripts/extract_dedukti.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath) # # Extract proofs from Dedukti / Lambdapi corpora. Dedukti is the universal diff --git a/scripts/extract_dreal.jl b/scripts/extract_dreal.jl index 82c02283..30767081 100644 --- a/scripts/extract_dreal.jl +++ b/scripts/extract_dreal.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Extract dReal delta-complete SMT-LIB problems (NRA / nonlinear real arithmetic). # Vendor: git clone https://github.com/dreal/dreal4 external_corpora/dreal4 using JSON3, Dates diff --git a/scripts/extract_framac.jl b/scripts/extract_framac.jl index 0c20ed9e..a4747d1a 100644 --- a/scripts/extract_framac.jl +++ b/scripts/extract_framac.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Extract Frama-C / ACSL proof obligations from the Frama-C tests + WP tutorials. # Vendor: git clone https://git.frama-c.com/pub/frama-c external_corpora/frama-c using JSON3, Dates diff --git a/scripts/extract_fstar.jl b/scripts/extract_fstar.jl index 780704cf..21b9ebf3 100644 --- a/scripts/extract_fstar.jl +++ b/scripts/extract_fstar.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) # # Extract proofs from F* (Project Everest) and convert to ECHIDNA training format. diff --git a/scripts/extract_hol4.jl b/scripts/extract_hol4.jl index f4e41382..b233f38e 100644 --- a/scripts/extract_hol4.jl +++ b/scripts/extract_hol4.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2026 ECHIDNA Project Team # # Extract proofs from HOL4 corpus and convert to ECHIDNA training format. diff --git a/scripts/extract_hol_light.jl b/scripts/extract_hol_light.jl index cb4f9a8f..ce155272 100644 --- a/scripts/extract_hol_light.jl +++ b/scripts/extract_hol_light.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2026 ECHIDNA Project Team # # Extract proofs from HOL Light corpus and convert to ECHIDNA training format. diff --git a/scripts/extract_idris2.jl b/scripts/extract_idris2.jl index 5b80297f..ae96f4a7 100644 --- a/scripts/extract_idris2.jl +++ b/scripts/extract_idris2.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) # # Extract proofs from Idris2 stdlib and tests, convert to ECHIDNA training format. diff --git a/scripts/extract_isabelle_tropical.jl b/scripts/extract_isabelle_tropical.jl index 2dfef894..53755066 100644 --- a/scripts/extract_isabelle_tropical.jl +++ b/scripts/extract_isabelle_tropical.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) # # extract_isabelle_tropical.jl diff --git a/scripts/extract_isabelle_zf.jl b/scripts/extract_isabelle_zf.jl index eccda18b..d50ecc04 100644 --- a/scripts/extract_isabelle_zf.jl +++ b/scripts/extract_isabelle_zf.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath) # # Extract proofs from Isabelle/ZF (Zermelo-Fraenkel set-theory object logic). diff --git a/scripts/extract_key.jl b/scripts/extract_key.jl index 0ed8a5a4..9b6a49e3 100644 --- a/scripts/extract_key.jl +++ b/scripts/extract_key.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Extract KeY proof problems (Java + JML). Vendor: key-project/key examples. using JSON3, Dates const DIR = "external_corpora/key/examples"; const OUT = "training_data"; const START_ID = 1_400_000 diff --git a/scripts/extract_lambda_prolog.jl b/scripts/extract_lambda_prolog.jl index 24bf6cf4..b6fdabcc 100644 --- a/scripts/extract_lambda_prolog.jl +++ b/scripts/extract_lambda_prolog.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Extract proofs / declarations / λProlog .mod files from λProlog. # Vendor location: external_corpora/lambda_prolog/ using JSON3, Dates diff --git a/scripts/extract_lean3.jl b/scripts/extract_lean3.jl index ed3f833d..07230c40 100644 --- a/scripts/extract_lean3.jl +++ b/scripts/extract_lean3.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath) # # Extract proofs from mathlib3 (Lean 3) corpus and convert to ECHIDNA training diff --git a/scripts/extract_mathcomp.jl b/scripts/extract_mathcomp.jl index 8d657d3d..051e9141 100644 --- a/scripts/extract_mathcomp.jl +++ b/scripts/extract_mathcomp.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) # # Mathematical Components (mathcomp) extractor for ECHIDNA training data. @@ -212,7 +212,7 @@ function save_results(proof_states, tactics, premises, stats; output_dir="traini end end open(joinpath(output_dir, "stats_mathcomp.a2ml"), "w") do fh - println(fh, "# SPDX-License-Identifier: AGPL-3.0-or-later") + println(fh, "# SPDX-License-Identifier: MPL-2.0") println(fh, "# mathcomp extraction statistics"); println(fh) A2MLEmit.write_metadata_table(fh, stats) end diff --git a/scripts/extract_mathlib4.jl b/scripts/extract_mathlib4.jl index c234dfe2..2992d2ad 100644 --- a/scripts/extract_mathlib4.jl +++ b/scripts/extract_mathlib4.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2026 ECHIDNA Project Team # # Extract proofs from Lean mathlib4 corpus and convert to ECHIDNA training format. diff --git a/scripts/extract_matita.jl b/scripts/extract_matita.jl index d436ad3d..a7dfc665 100644 --- a/scripts/extract_matita.jl +++ b/scripts/extract_matita.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Extract proofs / declarations / .ma files from Matita. # Vendor location: external_corpora/matita/ using JSON3, Dates diff --git a/scripts/extract_mercury.jl b/scripts/extract_mercury.jl index 9e0c324c..9fe7ef6a 100644 --- a/scripts/extract_mercury.jl +++ b/scripts/extract_mercury.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Extract proofs / declarations / Mercury .m files from Mercury. # Vendor location: external_corpora/mercury/ using JSON3, Dates diff --git a/scripts/extract_metamath.jl b/scripts/extract_metamath.jl index 38d4de15..4e79da27 100644 --- a/scripts/extract_metamath.jl +++ b/scripts/extract_metamath.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2026 ECHIDNA Project Team # # Metamath proof extractor. diff --git a/scripts/extract_minizinc.jl b/scripts/extract_minizinc.jl index d6e70a50..bd52848e 100644 --- a/scripts/extract_minizinc.jl +++ b/scripts/extract_minizinc.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2026 ECHIDNA Project Team # # Extract constraint models from MiniZinc benchmarks and generate training data diff --git a/scripts/extract_mizar.jl b/scripts/extract_mizar.jl index 0328db6e..e710b7b0 100644 --- a/scripts/extract_mizar.jl +++ b/scripts/extract_mizar.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2026 ECHIDNA Project Team # # Extract proofs from Mizar Mathematical Library (MML) and convert to ECHIDNA diff --git a/scripts/extract_naproche.jl b/scripts/extract_naproche.jl index 2033c53c..38e5a8d8 100644 --- a/scripts/extract_naproche.jl +++ b/scripts/extract_naproche.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Extract proofs / declarations / ForTheL files from Naproche (ForTheL). # Vendor location: external_corpora/naproche/ using JSON3, Dates diff --git a/scripts/extract_nitpick.jl b/scripts/extract_nitpick.jl index 627976a4..983b4646 100644 --- a/scripts/extract_nitpick.jl +++ b/scripts/extract_nitpick.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Extract proofs / declarations / Isabelle .thy with nitpick calls from Nitpick (refutation finder). # Vendor location: external_corpora/nitpick/ using JSON3, Dates diff --git a/scripts/extract_nunchaku.jl b/scripts/extract_nunchaku.jl index 3480fe72..e846c78f 100644 --- a/scripts/extract_nunchaku.jl +++ b/scripts/extract_nunchaku.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Extract proofs / declarations / .nun files from Nunchaku (refutation finder). # Vendor location: external_corpora/nunchaku/ using JSON3, Dates diff --git a/scripts/extract_nusmv.jl b/scripts/extract_nusmv.jl index 8c21b1c7..731bc740 100644 --- a/scripts/extract_nusmv.jl +++ b/scripts/extract_nusmv.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Extract NuSMV / nuXmv model-checker CTL/LTL properties. # Vendor: https://nusmv.fbk.eu/distrib/ (examples ship with distribution). using JSON3, Dates diff --git a/scripts/extract_opentheory.jl b/scripts/extract_opentheory.jl index bef14924..1dee2206 100644 --- a/scripts/extract_opentheory.jl +++ b/scripts/extract_opentheory.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell # # Extract theorem packages from OpenTheory (https://opentheory.gilith.com/). diff --git a/scripts/extract_prism.jl b/scripts/extract_prism.jl index ecb71f76..2783c056 100644 --- a/scripts/extract_prism.jl +++ b/scripts/extract_prism.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Extract PRISM probabilistic model-checker properties. # Vendor: git clone https://github.com/prismmodelchecker/prism-examples external_corpora/prism using JSON3, Dates diff --git a/scripts/extract_proverif.jl b/scripts/extract_proverif.jl index 6208bf18..30ff8054 100644 --- a/scripts/extract_proverif.jl +++ b/scripts/extract_proverif.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Extract ProVerif queries from inria/proverif-examples. # Vendor: git clone https://gitlab.inria.fr/bblanche/proverif external_corpora/proverif using JSON3, Dates diff --git a/scripts/extract_pvs.jl b/scripts/extract_pvs.jl index d21ec84b..9c224a60 100644 --- a/scripts/extract_pvs.jl +++ b/scripts/extract_pvs.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) # # Extract proofs from NASA PVS library and convert to ECHIDNA training format. diff --git a/scripts/extract_sat_benchmarks.jl b/scripts/extract_sat_benchmarks.jl index 39b49508..14c6859a 100644 --- a/scripts/extract_sat_benchmarks.jl +++ b/scripts/extract_sat_benchmarks.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # # Shared extractor for the SAT-solver fleet (CaDiCaL, Kissat, MiniSat). # All three consume DIMACS CNF, so one extractor builds the corpus and diff --git a/scripts/extract_seahorn.jl b/scripts/extract_seahorn.jl index 742a8e0d..9d24c573 100644 --- a/scripts/extract_seahorn.jl +++ b/scripts/extract_seahorn.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Extract SeaHorn LLVM-based verification problems (CHC-encoded). # Vendor: git clone https://github.com/seahorn/seahorn external_corpora/seahorn using JSON3, Dates diff --git a/scripts/extract_smtlib.jl b/scripts/extract_smtlib.jl index ea8b6e8c..c52ce25d 100644 --- a/scripts/extract_smtlib.jl +++ b/scripts/extract_smtlib.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) # # SMT-LIB benchmark extractor for ECHIDNA training data. @@ -396,7 +396,7 @@ function save_results(proof_states, tactics, premises, stats; output_dir="traini ) open(joinpath(output_dir, "stats_smtlib.a2ml"), "w") do fh - println(fh, "# SPDX-License-Identifier: AGPL-3.0-or-later") + println(fh, "# SPDX-License-Identifier: MPL-2.0") println(fh, "# SMT-LIB extraction statistics") println(fh) A2MLEmit.write_metadata_table(fh, stats) diff --git a/scripts/extract_spin.jl b/scripts/extract_spin.jl index 093f28fd..95aeada2 100644 --- a/scripts/extract_spin.jl +++ b/scripts/extract_spin.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Extract SPIN model-checker LTL properties from Promela models. # Vendor: https://spinroot.com/spin/Examples or nimble-code/Spin using JSON3, Dates diff --git a/scripts/extract_tamarin.jl b/scripts/extract_tamarin.jl index 27906445..e562393e 100644 --- a/scripts/extract_tamarin.jl +++ b/scripts/extract_tamarin.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Extract Tamarin security-protocol theories from tamarin-prover examples. # Vendor: git clone https://github.com/tamarin-prover/tamarin-prover external_corpora/tamarin using JSON3, Dates diff --git a/scripts/extract_tlaps.jl b/scripts/extract_tlaps.jl index c7139b0a..ca505284 100644 --- a/scripts/extract_tlaps.jl +++ b/scripts/extract_tlaps.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Extract TLA+ proofs from the TLAPS examples + tlaplus/examples repo. # Vendor: git clone https://github.com/tlaplus/Examples external_corpora/tlaplus_examples using JSON3, Dates diff --git a/scripts/extract_tlc.jl b/scripts/extract_tlc.jl index 435902b0..969e0336 100644 --- a/scripts/extract_tlc.jl +++ b/scripts/extract_tlc.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Extract TLC model-checker inputs from tlaplus/examples (same repo as TLAPS). # TLC checks specifications rather than proves theorems; records capture # spec+invariant pairs as proof-state analogues. diff --git a/scripts/extract_tptp.jl b/scripts/extract_tptp.jl index c9b85c3f..dd8efc6f 100644 --- a/scripts/extract_tptp.jl +++ b/scripts/extract_tptp.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) # # TPTP Problem Library extractor for ECHIDNA training data. @@ -289,7 +289,7 @@ function save_results(proof_states, tactics, premises, stats; output_dir::String # Stats as a standalone metadata-only A2ML file open(joinpath(output_dir, "stats_tptp.a2ml"), "w") do fh - println(fh, "# SPDX-License-Identifier: AGPL-3.0-or-later") + println(fh, "# SPDX-License-Identifier: MPL-2.0") println(fh, "# TPTP extraction statistics") println(fh) A2MLEmit.write_metadata_table(fh, stats) diff --git a/scripts/extract_typechecker_ecosystem.jl b/scripts/extract_typechecker_ecosystem.jl index 1e167fc0..891b3c7a 100644 --- a/scripts/extract_typechecker_ecosystem.jl +++ b/scripts/extract_typechecker_ecosystem.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2026 ECHIDNA Project Team # # extract_typechecker_ecosystem.jl diff --git a/scripts/extract_typed_wasm.jl b/scripts/extract_typed_wasm.jl index c4ed35da..f7a85c13 100644 --- a/scripts/extract_typed_wasm.jl +++ b/scripts/extract_typed_wasm.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) # # Extract TypedWasm proof problems from ECHIDNA's own test fixtures and diff --git a/scripts/extract_uppaal.jl b/scripts/extract_uppaal.jl index 848e062f..55634921 100644 --- a/scripts/extract_uppaal.jl +++ b/scripts/extract_uppaal.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Extract UPPAAL timed-automata reachability / TCTL queries. # Vendor: https://uppaal.org/documentation/ (examples ship with distribution). using JSON3, Dates diff --git a/scripts/extract_viper.jl b/scripts/extract_viper.jl index 77b10ae7..968f85f1 100644 --- a/scripts/extract_viper.jl +++ b/scripts/extract_viper.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Extract Viper (Silver) separation-logic verification problems. # Vendor: git clone https://github.com/viperproject/silver external_corpora/viper using JSON3, Dates diff --git a/scripts/extract_why3.jl b/scripts/extract_why3.jl index 390977a8..141eaf49 100644 --- a/scripts/extract_why3.jl +++ b/scripts/extract_why3.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2026 ECHIDNA Project Team # # Extract proofs from Why3 examples and convert to ECHIDNA training format. diff --git a/scripts/extractor_save_common.jl b/scripts/extractor_save_common.jl index 1d9204c7..379ada98 100644 --- a/scripts/extractor_save_common.jl +++ b/scripts/extractor_save_common.jl @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Shared helper used by the backend-only-prover extractors to serialise # proof-states / tactics / premises to the standard training_data layout. using JSON3, Dates diff --git a/scripts/final_complete_merge.jl b/scripts/final_complete_merge.jl index ee2252d0..67b3b667 100644 --- a/scripts/final_complete_merge.jl +++ b/scripts/final_complete_merge.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2026 ECHIDNA Project Team # # Final complete merge - ensure ALL data is included. diff --git a/scripts/final_normalization.jl b/scripts/final_normalization.jl index c02ce631..caa8bf5f 100644 --- a/scripts/final_normalization.jl +++ b/scripts/final_normalization.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2026 ECHIDNA Project Team # # Final normalization - ensure consistent prover names and verify completeness. diff --git a/scripts/gen-provers-a2ml.sh b/scripts/gen-provers-a2ml.sh index ba2523c0..01cdb4b3 100755 --- a/scripts/gen-provers-a2ml.sh +++ b/scripts/gen-provers-a2ml.sh @@ -9,10 +9,9 @@ # Case-only ties are not resolved by the sort: list `Mizar` before # `MizAR`, as the committed file does. # -# NOTE: the header template below declares AGPL-3.0-or-later (matching the -# root LICENSE) while the committed .machine_readable/provers.a2ml declares -# MPL-2.0. That discrepancy is a licensing call, tracked separately -- do -# not let a regeneration silently change the file's SPDX line. +# The header template below declares MPL-2.0, matching both the root LICENSE +# and the committed .machine_readable/provers.a2ml (reconciled 2026-10-01, +# D262). Keep the two in step: a regeneration must not change the SPDX line. # # The variant-list path is a CLI argument (was the hard-coded # /tmp/provers-list.txt); predictable /tmp/* paths are a panic-attack @@ -28,7 +27,7 @@ if [ -z "$VARIANT_LIST" ] || [ ! -r "$VARIANT_LIST" ]; then fi cat << 'HEADER' -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell # # provers.a2ml — Authoritative enumeration of ECHIDNA prover backends. diff --git a/scripts/generate_synthetic_dafny_scale.jl b/scripts/generate_synthetic_dafny_scale.jl index ea7c176c..fe5d58f8 100644 --- a/scripts/generate_synthetic_dafny_scale.jl +++ b/scripts/generate_synthetic_dafny_scale.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Copyright (c) 2026 Jonathan D.A. Jewell # # Scale-synthesis for Dafny. diff --git a/scripts/generate_synthetic_provers.jl b/scripts/generate_synthetic_provers.jl index 2361089d..0c9e6018 100644 --- a/scripts/generate_synthetic_provers.jl +++ b/scripts/generate_synthetic_provers.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2026 ECHIDNA Project Team # # Generate high-quality synthetic proofs for provers with tiny communities diff --git a/scripts/generate_synthetic_tail_scale.jl b/scripts/generate_synthetic_tail_scale.jl index d1f905b7..79b0e59d 100644 --- a/scripts/generate_synthetic_tail_scale.jl +++ b/scripts/generate_synthetic_tail_scale.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell # # Scale synthetic corpora for the source-gated provers so each crosses diff --git a/scripts/install-proof-toolchains.sh b/scripts/install-proof-toolchains.sh index 947874c7..c24d626e 100755 --- a/scripts/install-proof-toolchains.sh +++ b/scripts/install-proof-toolchains.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # # install-proof-toolchains.sh — self-provision the formal-proof toolchains that # ECHIDNA's proof corpus is checked with: Idris2, Agda (+stdlib), Coq, Lean 4. diff --git a/scripts/max_extract_coqgym.jl b/scripts/max_extract_coqgym.jl index 249ca38d..1ccc8fde 100644 --- a/scripts/max_extract_coqgym.jl +++ b/scripts/max_extract_coqgym.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) # # MAXIMUM CoqGym Extraction - Extract ALL available proofs. diff --git a/scripts/max_extract_mathlib4.jl b/scripts/max_extract_mathlib4.jl index d38a6325..8fe0c7e8 100644 --- a/scripts/max_extract_mathlib4.jl +++ b/scripts/max_extract_mathlib4.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) # # MAXIMUM mathlib4 Extraction - Extract ALL available Lean proofs. diff --git a/scripts/merge_all_corpora.jl b/scripts/merge_all_corpora.jl index b3fa7934..9ae442c8 100644 --- a/scripts/merge_all_corpora.jl +++ b/scripts/merge_all_corpora.jl @@ -1,6 +1,6 @@ #!/usr/bin/env julia # SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 """ Comprehensive corpus merger for ECHIDNA v2.0 diff --git a/scripts/merge_corpus.jl b/scripts/merge_corpus.jl index 99ab0318..ac123feb 100644 --- a/scripts/merge_corpus.jl +++ b/scripts/merge_corpus.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) # # merge_corpus.jl -- Merge all ECHIDNA corpus extraction results into a unified diff --git a/scripts/merge_training_data.jl b/scripts/merge_training_data.jl index 0ff475f3..c28fd22b 100644 --- a/scripts/merge_training_data.jl +++ b/scripts/merge_training_data.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Merge training data files for ECHIDNA corpus expansion using JSON3 diff --git a/scripts/metamath_extract_working.jl b/scripts/metamath_extract_working.jl index 0c36e004..3cafff80 100644 --- a/scripts/metamath_extract_working.jl +++ b/scripts/metamath_extract_working.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Working Metamath proof extractor using JSON3 diff --git a/scripts/metamath_final.jl b/scripts/metamath_final.jl index ea6223f0..92e25566 100644 --- a/scripts/metamath_final.jl +++ b/scripts/metamath_final.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2026 ECHIDNA Project Team # # Final Metamath proof extractor - simplified and robust. diff --git a/scripts/mvp-functional.sh b/scripts/mvp-functional.sh index c62b05da..dfbffa44 100755 --- a/scripts/mvp-functional.sh +++ b/scripts/mvp-functional.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell set -euo pipefail diff --git a/scripts/provision_corpora.sh b/scripts/provision_corpora.sh index fe543eb2..ec7ea2d4 100755 --- a/scripts/provision_corpora.sh +++ b/scripts/provision_corpora.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell # # ECHIDNA — Non-interactive upstream corpus provisioning. diff --git a/scripts/simple_merge.jl b/scripts/simple_merge.jl index d825cbc1..881fe9a9 100644 --- a/scripts/simple_merge.jl +++ b/scripts/simple_merge.jl @@ -1,6 +1,6 @@ #!/usr/bin/env julia # SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 """ Simple corpus merger using manual JSON parsing (like original scripts). diff --git a/scripts/simple_metamath_extract.jl b/scripts/simple_metamath_extract.jl index 643e98cc..1621904d 100644 --- a/scripts/simple_metamath_extract.jl +++ b/scripts/simple_metamath_extract.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Simple Metamath proof extractor using JSON3 diff --git a/scripts/test-proofs.sh b/scripts/test-proofs.sh index f083a525..28b2bc36 100755 --- a/scripts/test-proofs.sh +++ b/scripts/test-proofs.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash # SPDX-FileCopyrightText: 2025 Jonathan D.A. Jewell -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 set -euo pipefail diff --git a/scripts/test_integration.sh b/scripts/test_integration.sh index 700dc3d2..beb9611f 100755 --- a/scripts/test_integration.sh +++ b/scripts/test_integration.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell # ECHIDNA v1.2 Integration Test Script diff --git a/scripts/ultimate_expansion.jl b/scripts/ultimate_expansion.jl index 7477c31b..e4f58a87 100644 --- a/scripts/ultimate_expansion.jl +++ b/scripts/ultimate_expansion.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2026 ECHIDNA Project Team # # ULTIMATE CORPUS EXPANSION - Maximum vocabulary and prover coverage diff --git a/scripts/vocabulary_5x_expansion.jl b/scripts/vocabulary_5x_expansion.jl index 7db6f476..f152f44f 100644 --- a/scripts/vocabulary_5x_expansion.jl +++ b/scripts/vocabulary_5x_expansion.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2026 ECHIDNA Project Team # # vocabulary_5x_expansion.jl — Expand ECHIDNA vocabulary 5× (6,555 → 33,000+) diff --git a/scripts/vocabulary_canonicalize.jl b/scripts/vocabulary_canonicalize.jl index d53ac699..77d988f7 100644 --- a/scripts/vocabulary_canonicalize.jl +++ b/scripts/vocabulary_canonicalize.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2026 ECHIDNA Project Team # # vocabulary_canonicalize.jl — Produce a clean canonical seed vocabulary. diff --git a/scripts/vocabulary_expansion.jl b/scripts/vocabulary_expansion.jl index ca1e58a6..c24eb1bf 100644 --- a/scripts/vocabulary_expansion.jl +++ b/scripts/vocabulary_expansion.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2026 ECHIDNA Project Team # # Comprehensive vocabulary expansion - reach 1000+ words. diff --git a/scripts/vocabulary_final.jl b/scripts/vocabulary_final.jl index 3d4fd1b6..339e42e5 100644 --- a/scripts/vocabulary_final.jl +++ b/scripts/vocabulary_final.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2026 ECHIDNA Project Team # # Final vocabulary expansion - simple and robust approach. diff --git a/scripts/vocabulary_mine_corpus.jl b/scripts/vocabulary_mine_corpus.jl index 13ac4ec3..2e076215 100644 --- a/scripts/vocabulary_mine_corpus.jl +++ b/scripts/vocabulary_mine_corpus.jl @@ -1,5 +1,5 @@ #!/usr/bin/env julia -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) # # vocabulary_mine_corpus.jl — Mine proof corpora for a frequency-filtered diff --git a/selur-compose.toml b/selur-compose.toml index 503955d4..4afcb9d3 100644 --- a/selur-compose.toml +++ b/selur-compose.toml @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) # # ECHIDNA — Stapeln/Selur service definition. diff --git a/setup.sh b/setup.sh index 13ac2e8b..d14a6fab 100755 --- a/setup.sh +++ b/setup.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) # # Echidna — Universal Setup Script diff --git a/site/docs/index.adoc b/site/docs/index.adoc index 650abc82..67d96d29 100644 --- a/site/docs/index.adoc +++ b/site/docs/index.adoc @@ -77,7 +77,7 @@ Reject) === License -AGPL-3.0-or-later. Source at +MPL-2.0 (documentation CC-BY-SA-4.0). Source at https://github.com/hyperpolymath/echidna[github.com/hyperpolymath/echidna]. link:/index.html[Back to home] diff --git a/site/index.adoc b/site/index.adoc index 73903619..2ce076c7 100644 --- a/site/index.adoc +++ b/site/index.adoc @@ -60,7 +60,8 @@ published at `+ghcr.io/hyperpolymath/echidna+`. === Source and license -ECHIDNA is free software, licensed under AGPL-3.0-or-later. Development +ECHIDNA is free software, licensed under MPL-2.0 (documentation under +CC-BY-SA-4.0). Development happens at https://github.com/hyperpolymath/echidna[github.com/hyperpolymath/echidna], where issues and contributions are welcome. diff --git a/spark/axiom_tracker/axiom_tracker.adb b/spark/axiom_tracker/axiom_tracker.adb index 46ff8e36..2ac9c7c8 100644 --- a/spark/axiom_tracker/axiom_tracker.adb +++ b/spark/axiom_tracker/axiom_tracker.adb @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- -- SPARK companion body for axiom_tracker.ads -- diff --git a/spark/axiom_tracker/axiom_tracker.ads b/spark/axiom_tracker/axiom_tracker.ads index 18a5e393..e4bd74c6 100644 --- a/spark/axiom_tracker/axiom_tracker.ads +++ b/spark/axiom_tracker/axiom_tracker.ads @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- -- SPARK companion spec for src/rust/verification/axiom_tracker.rs -- diff --git a/spark/axiom_tracker/axiom_tracker_proof.adb b/spark/axiom_tracker/axiom_tracker_proof.adb index 3bfd6ee8..91e8c770 100644 --- a/spark/axiom_tracker/axiom_tracker_proof.adb +++ b/spark/axiom_tracker/axiom_tracker_proof.adb @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- -- Proof obligations and gnatprove discharge notes for axiom_tracker. -- This file compiles to a no-op; all content is documentary. diff --git a/spark/certificates/certificates.adb b/spark/certificates/certificates.adb index b21eaf7e..af775150 100644 --- a/spark/certificates/certificates.adb +++ b/spark/certificates/certificates.adb @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- -- SPARK companion body for certificates.ads -- diff --git a/spark/certificates/certificates.ads b/spark/certificates/certificates.ads index ee7d34de..c1ddf94b 100644 --- a/spark/certificates/certificates.ads +++ b/spark/certificates/certificates.ads @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- -- SPARK companion spec for src/rust/verification/certificates.rs -- diff --git a/spark/certificates/certificates_proof.adb b/spark/certificates/certificates_proof.adb index de16c10e..215ddb8a 100644 --- a/spark/certificates/certificates_proof.adb +++ b/spark/certificates/certificates_proof.adb @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- -- Proof obligations and gnatprove discharge notes for certificates. -- This file compiles to a no-op; all content is documentary. diff --git a/spark/solver_integrity/solver_integrity.adb b/spark/solver_integrity/solver_integrity.adb index 2a8d029a..952094b4 100644 --- a/spark/solver_integrity/solver_integrity.adb +++ b/spark/solver_integrity/solver_integrity.adb @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- -- SPARK companion body for solver_integrity.ads -- diff --git a/spark/solver_integrity/solver_integrity.ads b/spark/solver_integrity/solver_integrity.ads index 9565de94..62268c05 100644 --- a/spark/solver_integrity/solver_integrity.ads +++ b/spark/solver_integrity/solver_integrity.ads @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- -- SPARK companion spec for src/rust/integrity/solver_integrity.rs -- diff --git a/spark/solver_integrity/solver_integrity_proof.adb b/spark/solver_integrity/solver_integrity_proof.adb index e9a92f69..8bff51be 100644 --- a/spark/solver_integrity/solver_integrity_proof.adb +++ b/spark/solver_integrity/solver_integrity_proof.adb @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- -- Proof obligations and gnatprove discharge notes for solver_integrity. -- This file compiles to a no-op; all content is documentary. diff --git a/src/abi/Boj/Foreign.idr b/src/abi/Boj/Foreign.idr index 0914dd19..6ce38ca0 100644 --- a/src/abi/Boj/Foreign.idr +++ b/src/abi/Boj/Foreign.idr @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -- -- ECHIDNA BoJ Client ABI Foreign Function Declarations diff --git a/src/abi/BojForeign.idr b/src/abi/BojForeign.idr index 0914dd19..6ce38ca0 100644 --- a/src/abi/BojForeign.idr +++ b/src/abi/BojForeign.idr @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -- -- ECHIDNA BoJ Client ABI Foreign Function Declarations diff --git a/src/abi/CoprocessorForeign.idr b/src/abi/CoprocessorForeign.idr index 66d3bd2d..9d8ee2a6 100644 --- a/src/abi/CoprocessorForeign.idr +++ b/src/abi/CoprocessorForeign.idr @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -- -- ECHIDNA Coprocessor ABI — foreign declarations + trust-tier invariants. diff --git a/src/abi/EchidnaABI/AxiomTracker.idr b/src/abi/EchidnaABI/AxiomTracker.idr index 37c68298..93be129c 100644 --- a/src/abi/EchidnaABI/AxiomTracker.idr +++ b/src/abi/EchidnaABI/AxiomTracker.idr @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- Copyright (c) 2026 Jonathan D.A. Jewell -- -- EchidnaABI.AxiomTracker diff --git a/src/abi/EchidnaABI/CapnSchemas.idr b/src/abi/EchidnaABI/CapnSchemas.idr index b58c4f9d..784abf0a 100644 --- a/src/abi/EchidnaABI/CapnSchemas.idr +++ b/src/abi/EchidnaABI/CapnSchemas.idr @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- Copyright (c) 2026 Jonathan D.A. Jewell ||| ECHIDNA ABI — Cap'n Proto Schema Mirror diff --git a/src/abi/EchidnaABI/Foreign.idr b/src/abi/EchidnaABI/Foreign.idr index 4f13a3ee..c773586a 100644 --- a/src/abi/EchidnaABI/Foreign.idr +++ b/src/abi/EchidnaABI/Foreign.idr @@ -1,4 +1,4 @@ -||| SPDX-License-Identifier: AGPL-3.0-or-later +||| SPDX-License-Identifier: MPL-2.0 ||| Foreign Function Interface Declarations for ECHIDNA ||| ||| This module declares all C-compatible functions that will be diff --git a/src/abi/EchidnaABI/Gnn.idr b/src/abi/EchidnaABI/Gnn.idr index 66d26859..e6175c98 100644 --- a/src/abi/EchidnaABI/Gnn.idr +++ b/src/abi/EchidnaABI/Gnn.idr @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- Copyright (c) 2026 Jonathan D.A. Jewell ||| ECHIDNA ABI — Graph Neural Network Properties diff --git a/src/abi/EchidnaABI/Layout.idr b/src/abi/EchidnaABI/Layout.idr index b94df73c..08f7771b 100644 --- a/src/abi/EchidnaABI/Layout.idr +++ b/src/abi/EchidnaABI/Layout.idr @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- Copyright (c) 2026 Jonathan D.A. Jewell ||| ECHIDNA ABI Memory Layout Proofs diff --git a/src/abi/EchidnaABI/Provers.idr b/src/abi/EchidnaABI/Provers.idr index 40965ca1..d6ae37eb 100644 --- a/src/abi/EchidnaABI/Provers.idr +++ b/src/abi/EchidnaABI/Provers.idr @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- Copyright (c) 2026 Jonathan D.A. Jewell ||| Per-Prover ABI: Top-Level Module diff --git a/src/abi/EchidnaABI/Provers/AutoActive.idr b/src/abi/EchidnaABI/Provers/AutoActive.idr index 2c783751..ad9e7b27 100644 --- a/src/abi/EchidnaABI/Provers/AutoActive.idr +++ b/src/abi/EchidnaABI/Provers/AutoActive.idr @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- Copyright (c) 2026 Jonathan D.A. Jewell ||| Per-Prover ABI: Auto-Active Verifiers diff --git a/src/abi/EchidnaABI/Provers/ConstraintSolvers.idr b/src/abi/EchidnaABI/Provers/ConstraintSolvers.idr index 4085dddc..9c706e44 100644 --- a/src/abi/EchidnaABI/Provers/ConstraintSolvers.idr +++ b/src/abi/EchidnaABI/Provers/ConstraintSolvers.idr @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- Copyright (c) 2026 Jonathan D.A. Jewell ||| Per-Prover ABI: Constraint and Optimization Solvers diff --git a/src/abi/EchidnaABI/Provers/DeclarativeProvers.idr b/src/abi/EchidnaABI/Provers/DeclarativeProvers.idr index 3024e427..d958b591 100644 --- a/src/abi/EchidnaABI/Provers/DeclarativeProvers.idr +++ b/src/abi/EchidnaABI/Provers/DeclarativeProvers.idr @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- Copyright (c) 2026 Jonathan D.A. Jewell ||| Per-Prover ABI: Declarative Provers diff --git a/src/abi/EchidnaABI/Provers/FirstOrderAtp.idr b/src/abi/EchidnaABI/Provers/FirstOrderAtp.idr index 780f2813..78489088 100644 --- a/src/abi/EchidnaABI/Provers/FirstOrderAtp.idr +++ b/src/abi/EchidnaABI/Provers/FirstOrderAtp.idr @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- Copyright (c) 2026 Jonathan D.A. Jewell ||| Per-Prover ABI: First-Order Automated Theorem Provers diff --git a/src/abi/EchidnaABI/Provers/InteractiveAssistants.idr b/src/abi/EchidnaABI/Provers/InteractiveAssistants.idr index 6a357997..aec3b08d 100644 --- a/src/abi/EchidnaABI/Provers/InteractiveAssistants.idr +++ b/src/abi/EchidnaABI/Provers/InteractiveAssistants.idr @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- Copyright (c) 2026 Jonathan D.A. Jewell ||| Per-Prover ABI: Interactive Proof Assistants diff --git a/src/abi/EchidnaABI/Provers/SmtSolvers.idr b/src/abi/EchidnaABI/Provers/SmtSolvers.idr index 2d4d3535..84434698 100644 --- a/src/abi/EchidnaABI/Provers/SmtSolvers.idr +++ b/src/abi/EchidnaABI/Provers/SmtSolvers.idr @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- Copyright (c) 2026 Jonathan D.A. Jewell ||| Per-Prover ABI: SMT Solvers diff --git a/src/abi/EchidnaABI/TacticRecord.idr b/src/abi/EchidnaABI/TacticRecord.idr index a13117bd..12ed4d14 100644 --- a/src/abi/EchidnaABI/TacticRecord.idr +++ b/src/abi/EchidnaABI/TacticRecord.idr @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- Copyright (c) 2026 Jonathan D.A. Jewell ||| ECHIDNA ABI — Tactic Record (GNN → Chapel cross-FFI contract) diff --git a/src/abi/EchidnaABI/Types.idr b/src/abi/EchidnaABI/Types.idr index b7d560f9..605deae1 100644 --- a/src/abi/EchidnaABI/Types.idr +++ b/src/abi/EchidnaABI/Types.idr @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- Copyright (c) 2026 Jonathan D.A. Jewell ||| ECHIDNA ABI Type Definitions diff --git a/src/abi/EchidnaABI/VqlUt.idr b/src/abi/EchidnaABI/VqlUt.idr index d94ec713..3790d397 100644 --- a/src/abi/EchidnaABI/VqlUt.idr +++ b/src/abi/EchidnaABI/VqlUt.idr @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- Copyright (c) 2026 Jonathan D.A. Jewell ||| VQL-UT ABI: 10-Level Type-Safe Cross-Prover Query Language diff --git a/src/abi/Foreign.idr b/src/abi/Foreign.idr index 1609e809..76b9dba5 100644 --- a/src/abi/Foreign.idr +++ b/src/abi/Foreign.idr @@ -1,4 +1,4 @@ -||| SPDX-License-Identifier: AGPL-3.0-or-later +||| SPDX-License-Identifier: MPL-2.0 ||| Foreign Function Interface Declarations for ECHIDNA ||| ||| This module declares all C-compatible functions that will be diff --git a/src/abi/Layout.idr b/src/abi/Layout.idr index b94df73c..08f7771b 100644 --- a/src/abi/Layout.idr +++ b/src/abi/Layout.idr @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- Copyright (c) 2026 Jonathan D.A. Jewell ||| ECHIDNA ABI Memory Layout Proofs diff --git a/src/abi/NeSyAssistTesting.idr b/src/abi/NeSyAssistTesting.idr index d3167af6..53fd9983 100644 --- a/src/abi/NeSyAssistTesting.idr +++ b/src/abi/NeSyAssistTesting.idr @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- NeSy Assist Testing: Formal contract between neural ranker and symbolic verifier module NeSyAssistTesting diff --git a/src/abi/Overlay.idr b/src/abi/Overlay.idr index d92d0839..afb8b2fe 100644 --- a/src/abi/Overlay.idr +++ b/src/abi/Overlay.idr @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -- -- ECHIDNA Overlay Network ABI — Tor, IPFS, Ethereum diff --git a/src/abi/Overlay/Foreign.idr b/src/abi/Overlay/Foreign.idr index eb249045..613f12f8 100644 --- a/src/abi/Overlay/Foreign.idr +++ b/src/abi/Overlay/Foreign.idr @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -- -- ECHIDNA Overlay ABI Foreign Function Declarations diff --git a/src/abi/OverlayForeign.idr b/src/abi/OverlayForeign.idr index eb249045..613f12f8 100644 --- a/src/abi/OverlayForeign.idr +++ b/src/abi/OverlayForeign.idr @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -- -- ECHIDNA Overlay ABI Foreign Function Declarations diff --git a/src/abi/Tentacles/Foreign.idr b/src/abi/Tentacles/Foreign.idr index 8426f398..df5bf6a2 100644 --- a/src/abi/Tentacles/Foreign.idr +++ b/src/abi/Tentacles/Foreign.idr @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -- -- ECHIDNA Tentacles ABI Foreign Function Declarations diff --git a/src/abi/TentaclesForeign.idr b/src/abi/TentaclesForeign.idr index 8426f398..df5bf6a2 100644 --- a/src/abi/TentaclesForeign.idr +++ b/src/abi/TentaclesForeign.idr @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -- -- ECHIDNA Tentacles ABI Foreign Function Declarations diff --git a/src/abi/TypeLL/Foreign.idr b/src/abi/TypeLL/Foreign.idr index 25be9a0b..ffc025bc 100644 --- a/src/abi/TypeLL/Foreign.idr +++ b/src/abi/TypeLL/Foreign.idr @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -- -- ECHIDNA TypeLL Client ABI Foreign Function Declarations diff --git a/src/abi/TypeLLForeign.idr b/src/abi/TypeLLForeign.idr index 25be9a0b..ffc025bc 100644 --- a/src/abi/TypeLLForeign.idr +++ b/src/abi/TypeLLForeign.idr @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -- -- ECHIDNA TypeLL Client ABI Foreign Function Declarations diff --git a/src/abi/Types.idr b/src/abi/Types.idr index b7d560f9..605deae1 100644 --- a/src/abi/Types.idr +++ b/src/abi/Types.idr @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- Copyright (c) 2026 Jonathan D.A. Jewell ||| ECHIDNA ABI Type Definitions diff --git a/src/ada/spark/axiom_c_bridge.adb b/src/ada/spark/axiom_c_bridge.adb index 5b4c88ed..e2a01447 100644 --- a/src/ada/spark/axiom_c_bridge.adb +++ b/src/ada/spark/axiom_c_bridge.adb @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- (MPL-2.0 is automatic legal fallback until PMPL is formally recognised) -- -- Axiom_C_Bridge body — unmarshals C arrays and calls the SPARK functions. diff --git a/src/ada/spark/axiom_c_bridge.ads b/src/ada/spark/axiom_c_bridge.ads index 67781d94..2998ffd5 100644 --- a/src/ada/spark/axiom_c_bridge.ads +++ b/src/ada/spark/axiom_c_bridge.ads @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- (MPL-2.0 is automatic legal fallback until PMPL is formally recognised) -- -- Axiom_C_Bridge — C-callable wrapper around the SPARK Enforce function. diff --git a/src/ada/spark/axiom_policy.adb b/src/ada/spark/axiom_policy.adb index 8a38a19b..643e75e1 100644 --- a/src/ada/spark/axiom_policy.adb +++ b/src/ada/spark/axiom_policy.adb @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- (MPL-2.0 is automatic legal fallback until PMPL is formally recognised) -- -- Axiom_Policy body — pure SPARK implementation of enforce_policy. diff --git a/src/ada/spark/axiom_policy.ads b/src/ada/spark/axiom_policy.ads index 78c4b42a..3c351ca6 100644 --- a/src/ada/spark/axiom_policy.ads +++ b/src/ada/spark/axiom_policy.ads @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- (MPL-2.0 is automatic legal fallback until PMPL is formally recognised) -- -- Axiom_Policy — SPARK-verified policy enforcement for echidna axiom scanning. diff --git a/src/ada/spark/axiom_types.ads b/src/ada/spark/axiom_types.ads index fae9d7eb..cc9da443 100644 --- a/src/ada/spark/axiom_types.ads +++ b/src/ada/spark/axiom_types.ads @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- (MPL-2.0 is automatic legal fallback until PMPL is formally recognised) -- -- Axiom_Types — shared type definitions for the SPARK axiom-policy layer. diff --git a/src/ada/spark/coprocessor_safety.adb b/src/ada/spark/coprocessor_safety.adb index 9abada4b..936fd13b 100644 --- a/src/ada/spark/coprocessor_safety.adb +++ b/src/ada/spark/coprocessor_safety.adb @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- (MPL-2.0 is automatic legal fallback until PMPL is formally recognised) -- -- Coprocessor_Safety body — implementations whose post-conditions are diff --git a/src/ada/spark/coprocessor_safety.ads b/src/ada/spark/coprocessor_safety.ads index 943871c1..d919d801 100644 --- a/src/ada/spark/coprocessor_safety.ads +++ b/src/ada/spark/coprocessor_safety.ads @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- (MPL-2.0 is automatic legal fallback until PMPL is formally recognised) -- -- Coprocessor_Safety — SPARK-verified invariants on coprocessor trust-tier diff --git a/src/ada/spark/echidna_spark.gpr b/src/ada/spark/echidna_spark.gpr index 37a52391..3109f945 100644 --- a/src/ada/spark/echidna_spark.gpr +++ b/src/ada/spark/echidna_spark.gpr @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- (MPL-2.0 is automatic legal fallback until PMPL is formally recognised) -- -- GPRbuild project for ECHIDNA SPARK layer. diff --git a/src/chapel/bench_mrr.chpl b/src/chapel/bench_mrr.chpl index a218f22c..1ae7ca1f 100644 --- a/src/chapel/bench_mrr.chpl +++ b/src/chapel/bench_mrr.chpl @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) // // Chapel speedup baseline — runs sequentialProofSearch, diff --git a/src/chapel/chapel_ffi_exports.chpl b/src/chapel/chapel_ffi_exports.chpl index 6bd67ea1..5d044869 100644 --- a/src/chapel/chapel_ffi_exports.chpl +++ b/src/chapel/chapel_ffi_exports.chpl @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) // // Chapel FFI Exports for ECHIDNA — C-compatible interface for Zig FFI layer. diff --git a/src/chapel/parallel_proof_search.chpl b/src/chapel/parallel_proof_search.chpl index f808ca28..53ad5c52 100644 --- a/src/chapel/parallel_proof_search.chpl +++ b/src/chapel/parallel_proof_search.chpl @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) // // ECHIDNA Chapel Metalayer — Parallel Proof Search diff --git a/src/chapel/smoke.chpl b/src/chapel/smoke.chpl index ca09487b..95832434 100644 --- a/src/chapel/smoke.chpl +++ b/src/chapel/smoke.chpl @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) // // Hello-Chapel smoke target. diff --git a/src/idris/ProofTerm.idr b/src/idris/ProofTerm.idr index 77c00d9e..a63bf6a2 100644 --- a/src/idris/ProofTerm.idr +++ b/src/idris/ProofTerm.idr @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- ProofTerm.idr - Dependent-typed representation of proof terms module ProofTerm diff --git a/src/idris/Validator.idr b/src/idris/Validator.idr index a0732975..11f42b44 100644 --- a/src/idris/Validator.idr +++ b/src/idris/Validator.idr @@ -1,4 +1,4 @@ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 -- Validator.idr - Type checker for proof terms with soundness guarantees module Validator diff --git a/src/interfaces/ffi_integration_test.rs b/src/interfaces/ffi_integration_test.rs index f1c7bcff..ec777be7 100644 --- a/src/interfaces/ffi_integration_test.rs +++ b/src/interfaces/ffi_integration_test.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // FFI Integration Test - Tests that all 3 interfaces can use the FFI layer #[cfg(test)] diff --git a/src/interfaces/graphql/Cargo.toml b/src/interfaces/graphql/Cargo.toml index 26a962d3..2a7c8243 100644 --- a/src/interfaces/graphql/Cargo.toml +++ b/src/interfaces/graphql/Cargo.toml @@ -1,11 +1,11 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 [package] name = "echidna-graphql" version = "0.1.0" edition = "2021" authors = ["Jonathan D.A. Jewell "] -license = "AGPL-3.0-or-later" +license = "MPL-2.0" description = "GraphQL interface for ECHIDNA theorem proving platform" repository = "https://github.com/hyperpolymath/echidna-graphql" readme = "README.adoc" diff --git a/src/interfaces/graphql/ffi_wrapper.rs b/src/interfaces/graphql/ffi_wrapper.rs index 914722eb..ed9eb01b 100644 --- a/src/interfaces/graphql/ffi_wrapper.rs +++ b/src/interfaces/graphql/ffi_wrapper.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // GraphQL FFI Wrapper - Connects GraphQL interface to ECHIDNA Rust core via Zig FFI use anyhow::{anyhow, Result}; diff --git a/src/interfaces/graphql/main.rs b/src/interfaces/graphql/main.rs index 276569d1..975f3a2b 100644 --- a/src/interfaces/graphql/main.rs +++ b/src/interfaces/graphql/main.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // ECHIDNA GraphQL Interface - Main server use async_graphql::{EmptySubscription, Schema}; diff --git a/src/interfaces/graphql/resolvers.rs b/src/interfaces/graphql/resolvers.rs index addd5345..5b667129 100644 --- a/src/interfaces/graphql/resolvers.rs +++ b/src/interfaces/graphql/resolvers.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // GraphQL resolvers - wired to ECHIDNA core use echidna::core::{ diff --git a/src/interfaces/graphql/schema.rs b/src/interfaces/graphql/schema.rs index e12d9f5d..1607d417 100644 --- a/src/interfaces/graphql/schema.rs +++ b/src/interfaces/graphql/schema.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // GraphQL schema definitions - wired to ECHIDNA core use async_graphql::{Context, Enum, Object, Result, SimpleObject}; diff --git a/src/interfaces/grpc/Cargo.toml b/src/interfaces/grpc/Cargo.toml index fb1332f2..b4e64213 100644 --- a/src/interfaces/grpc/Cargo.toml +++ b/src/interfaces/grpc/Cargo.toml @@ -1,11 +1,11 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 [package] name = "echidna-grpc" version = "0.1.0" edition = "2021" authors = ["Jonathan D.A. Jewell "] -license = "AGPL-3.0-or-later" +license = "MPL-2.0" description = "gRPC interface for ECHIDNA theorem proving platform" repository = "https://github.com/hyperpolymath/echidna-grpc" readme = "README.adoc" diff --git a/src/interfaces/grpc/build.rs b/src/interfaces/grpc/build.rs index 690926d4..6864fcbb 100644 --- a/src/interfaces/grpc/build.rs +++ b/src/interfaces/grpc/build.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 fn main() -> Result<(), Box> { tonic_prost_build::compile_protos("proto/echidna.proto")?; diff --git a/src/interfaces/grpc/ffi_wrapper.rs b/src/interfaces/grpc/ffi_wrapper.rs index 8ad7b22e..7c030faa 100644 --- a/src/interfaces/grpc/ffi_wrapper.rs +++ b/src/interfaces/grpc/ffi_wrapper.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // gRPC FFI Wrapper - Connects gRPC interface to ECHIDNA Rust core via Zig FFI use anyhow::{anyhow, Result}; diff --git a/src/interfaces/grpc/main.rs b/src/interfaces/grpc/main.rs index 87850fb4..ac2fdde9 100644 --- a/src/interfaces/grpc/main.rs +++ b/src/interfaces/grpc/main.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // ECHIDNA gRPC Server - wired to core use echidna::core::{Tactic as CoreTactic, TacticResult, Term}; diff --git a/src/interfaces/grpc/proto/echidna.proto b/src/interfaces/grpc/proto/echidna.proto index c79cdb0f..6d018f66 100644 --- a/src/interfaces/grpc/proto/echidna.proto +++ b/src/interfaces/grpc/proto/echidna.proto @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // ECHIDNA gRPC Protocol syntax = "proto3"; diff --git a/src/interfaces/rest/Cargo.toml b/src/interfaces/rest/Cargo.toml index 2c17730f..32d99854 100644 --- a/src/interfaces/rest/Cargo.toml +++ b/src/interfaces/rest/Cargo.toml @@ -1,11 +1,11 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 [package] name = "echidna-rest" version = "0.1.0" edition = "2021" authors = ["Jonathan D.A. Jewell "] -license = "AGPL-3.0-or-later" +license = "MPL-2.0" description = "REST API for ECHIDNA theorem proving platform" publish = false diff --git a/src/interfaces/rest/ffi_wrapper.rs b/src/interfaces/rest/ffi_wrapper.rs index 834bc337..9f201ee5 100644 --- a/src/interfaces/rest/ffi_wrapper.rs +++ b/src/interfaces/rest/ffi_wrapper.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // REST FFI Wrapper - Connects REST interface to ECHIDNA Rust core via Zig FFI. // // The wrapper is scaffolding for the REST handlers — most entry points are diff --git a/src/interfaces/rest/handlers.rs b/src/interfaces/rest/handlers.rs index ba2d61ba..200c8207 100644 --- a/src/interfaces/rest/handlers.rs +++ b/src/interfaces/rest/handlers.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // REST API request handlers - wired to ECHIDNA core use axum::{ diff --git a/src/interfaces/rest/main.rs b/src/interfaces/rest/main.rs index 6a61e7c5..f4cd532f 100644 --- a/src/interfaces/rest/main.rs +++ b/src/interfaces/rest/main.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2025 Jonathan D.A. Jewell -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // ECHIDNA REST API Server use axum::{ diff --git a/src/interfaces/rest/models.rs b/src/interfaces/rest/models.rs index bd83302f..e03894de 100644 --- a/src/interfaces/rest/models.rs +++ b/src/interfaces/rest/models.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // REST API data models use serde::{Deserialize, Serialize}; diff --git a/src/julia/EchidnaBuddy.jl b/src/julia/EchidnaBuddy.jl index ceb03045..1cb823d6 100644 --- a/src/julia/EchidnaBuddy.jl +++ b/src/julia/EchidnaBuddy.jl @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) # # EchidnaBuddy.jl — Stochastic Meta-Prover Buddy diff --git a/src/julia/EchidnaML.jl b/src/julia/EchidnaML.jl index 6ac38b2e..a2c26a41 100644 --- a/src/julia/EchidnaML.jl +++ b/src/julia/EchidnaML.jl @@ -1,5 +1,5 @@ # SPDX-FileCopyrightText: 2025 ECHIDNA Project Team -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 """ EchidnaML diff --git a/src/julia/api/gnn_endpoint.jl b/src/julia/api/gnn_endpoint.jl index e8fc07ee..2a31ab6b 100644 --- a/src/julia/api/gnn_endpoint.jl +++ b/src/julia/api/gnn_endpoint.jl @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell """ diff --git a/src/julia/api/server.jl b/src/julia/api/server.jl index 07ef3aa9..1e5ddb1b 100644 --- a/src/julia/api/server.jl +++ b/src/julia/api/server.jl @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) # # api/server.jl — HTTP API server for neural premise selection. diff --git a/src/julia/api_server.jl b/src/julia/api_server.jl index f7e31efb..4c7ed34f 100644 --- a/src/julia/api_server.jl +++ b/src/julia/api_server.jl @@ -1,5 +1,5 @@ # SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 """ Julia ML API Server for ECHIDNA v1.3 diff --git a/src/julia/archive/train_advanced_models.jl b/src/julia/archive/train_advanced_models.jl index fa32d9f6..d0b2b5a9 100644 --- a/src/julia/archive/train_advanced_models.jl +++ b/src/julia/archive/train_advanced_models.jl @@ -1,7 +1,7 @@ #!/usr/bin/env julia # ARCHIVED 2026-05-24 — superseded by src/julia/run_training.jl. Kept for history only; do not invoke. # SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 """ Advanced Neural Model Training for ECHIDNA v2.0 diff --git a/src/julia/archive/train_and_evaluate.jl b/src/julia/archive/train_and_evaluate.jl index 449ddce7..3e927201 100755 --- a/src/julia/archive/train_and_evaluate.jl +++ b/src/julia/archive/train_and_evaluate.jl @@ -1,6 +1,6 @@ #!/usr/bin/env julia # ARCHIVED 2026-05-24 — superseded by src/julia/run_training.jl. Kept for history only; do not invoke. -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Train GNN model and evaluate on validation set, outputting metrics for health monitoring using JSON3 diff --git a/src/julia/archive/train_complete_final.jl b/src/julia/archive/train_complete_final.jl index 7a18038e..824d7169 100644 --- a/src/julia/archive/train_complete_final.jl +++ b/src/julia/archive/train_complete_final.jl @@ -1,7 +1,7 @@ #!/usr/bin/env julia # ARCHIVED 2026-05-24 — superseded by src/julia/run_training.jl. Kept for history only; do not invoke. # SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 """ COMPLETE FINAL Model Training - Standalone version with all dependencies diff --git a/src/julia/archive/train_final_models.jl b/src/julia/archive/train_final_models.jl index c27aee22..d3ce9b46 100644 --- a/src/julia/archive/train_final_models.jl +++ b/src/julia/archive/train_final_models.jl @@ -1,7 +1,7 @@ #!/usr/bin/env julia # ARCHIVED 2026-05-24 — superseded by src/julia/run_training.jl. Kept for history only; do not invoke. # SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 """ FINAL Model Training on COMPLETE Corpus diff --git a/src/julia/archive/train_models.jl b/src/julia/archive/train_models.jl index 32aec78c..42f98c9e 100644 --- a/src/julia/archive/train_models.jl +++ b/src/julia/archive/train_models.jl @@ -1,6 +1,6 @@ # ARCHIVED 2026-05-24 — superseded by src/julia/run_training.jl. Kept for history only; do not invoke. # SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 """ Neural Model Training for ECHIDNA v1.3 diff --git a/src/julia/coprocessor.jl b/src/julia/coprocessor.jl index 1244ed79..3e3e27e0 100644 --- a/src/julia/coprocessor.jl +++ b/src/julia/coprocessor.jl @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell # # src/julia/coprocessor.jl diff --git a/src/julia/corpus_loader.jl b/src/julia/corpus_loader.jl index b4471f6c..ac91d0a4 100644 --- a/src/julia/corpus_loader.jl +++ b/src/julia/corpus_loader.jl @@ -1,5 +1,5 @@ # SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # # corpus_loader.jl # diff --git a/src/julia/eval_held_out.jl b/src/julia/eval_held_out.jl index 1d36d445..64cae8fe 100644 --- a/src/julia/eval_held_out.jl +++ b/src/julia/eval_held_out.jl @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell # # eval_held_out.jl — Evaluate a trained GNN model on the held-out validation split. diff --git a/src/julia/extract_all_proofs.jl b/src/julia/extract_all_proofs.jl index f8fb1df8..667a8a44 100644 --- a/src/julia/extract_all_proofs.jl +++ b/src/julia/extract_all_proofs.jl @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Enhanced proof extraction for all 12 provers using Dates diff --git a/src/julia/extract_training_data.jl b/src/julia/extract_training_data.jl index a3f26e13..a82c48a4 100644 --- a/src/julia/extract_training_data.jl +++ b/src/julia/extract_training_data.jl @@ -1,5 +1,5 @@ # SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 """ Training Data Extraction for ECHIDNA v1.3 diff --git a/src/julia/inference/predict.jl b/src/julia/inference/predict.jl index ed509607..e9b957e7 100644 --- a/src/julia/inference/predict.jl +++ b/src/julia/inference/predict.jl @@ -1,5 +1,5 @@ # SPDX-FileCopyrightText: 2025 ECHIDNA Project Team -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 """ inference/predict.jl diff --git a/src/julia/ipc.jl b/src/julia/ipc.jl index c125e12b..e17d3fc6 100644 --- a/src/julia/ipc.jl +++ b/src/julia/ipc.jl @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell # # src/julia/ipc.jl diff --git a/src/julia/models/encoder.jl b/src/julia/models/encoder.jl index 0bde4388..9f69c668 100644 --- a/src/julia/models/encoder.jl +++ b/src/julia/models/encoder.jl @@ -1,5 +1,5 @@ # SPDX-FileCopyrightText: 2025 ECHIDNA Project Team -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 """ models/encoder.jl diff --git a/src/julia/models/neural_solver.jl b/src/julia/models/neural_solver.jl index df5bedc9..7c3defe0 100644 --- a/src/julia/models/neural_solver.jl +++ b/src/julia/models/neural_solver.jl @@ -1,5 +1,5 @@ # SPDX-FileCopyrightText: 2025 ECHIDNA Project Team -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 """ models/neural_solver.jl diff --git a/src/julia/probabilistic/gen_reasoning.jl b/src/julia/probabilistic/gen_reasoning.jl index 59366a3e..ed3cd8a3 100644 --- a/src/julia/probabilistic/gen_reasoning.jl +++ b/src/julia/probabilistic/gen_reasoning.jl @@ -1,5 +1,5 @@ # SPDX-FileCopyrightText: 2025 ECHIDNA Project Contributors -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 """ Probabilistic Reasoning with Gen.jl diff --git a/src/julia/retrain_from_verisim.jl b/src/julia/retrain_from_verisim.jl index 3aade27d..1e3903d3 100644 --- a/src/julia/retrain_from_verisim.jl +++ b/src/julia/retrain_from_verisim.jl @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath) # # retrain_from_verisim.jl — Retrain ECHIDNA's logistic-regression premise diff --git a/src/julia/rl/training.jl b/src/julia/rl/training.jl index cc665fbf..84feb9ac 100644 --- a/src/julia/rl/training.jl +++ b/src/julia/rl/training.jl @@ -1,5 +1,5 @@ # SPDX-FileCopyrightText: 2025 ECHIDNA Project Contributors -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 """ Reinforcement Learning Training Loop for ECHIDNA diff --git a/src/julia/run_server.jl b/src/julia/run_server.jl index cde7a684..a0c99cfd 100644 --- a/src/julia/run_server.jl +++ b/src/julia/run_server.jl @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) # # run_server.jl — Start the ECHIDNA neural premise selection API server. diff --git a/src/julia/run_training.jl b/src/julia/run_training.jl index bc5c3428..4e670f47 100644 --- a/src/julia/run_training.jl +++ b/src/julia/run_training.jl @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) # # run_training.jl — Main entry point for training the ECHIDNA neural solver. diff --git a/src/julia/run_training_cpu.jl b/src/julia/run_training_cpu.jl index a82b89d5..50ae0745 100644 --- a/src/julia/run_training_cpu.jl +++ b/src/julia/run_training_cpu.jl @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) # # run_training_cpu.jl — CPU-pinned, capped training entry point for the diff --git a/src/julia/saturation_synonyms.jl b/src/julia/saturation_synonyms.jl index afce0fea..3a22681f 100644 --- a/src/julia/saturation_synonyms.jl +++ b/src/julia/saturation_synonyms.jl @@ -1,5 +1,5 @@ # SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # # saturation_synonyms.jl # diff --git a/src/julia/training/dataloader.jl b/src/julia/training/dataloader.jl index ddb9026b..2af59aa2 100644 --- a/src/julia/training/dataloader.jl +++ b/src/julia/training/dataloader.jl @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 # Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) # # training/dataloader.jl diff --git a/src/julia/training/train.jl b/src/julia/training/train.jl index 55904d99..17b195e0 100644 --- a/src/julia/training/train.jl +++ b/src/julia/training/train.jl @@ -1,5 +1,5 @@ # SPDX-FileCopyrightText: 2025 ECHIDNA Project Team -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: MPL-2.0 """ training/train.jl diff --git a/src/rust/agent/actors.rs b/src/rust/agent/actors.rs index 5950219d..df3de680 100644 --- a/src/rust/agent/actors.rs +++ b/src/rust/agent/actors.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2025 ECHIDNA Project Contributors -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 #![allow(dead_code)] #![allow(unexpected_cfgs)] diff --git a/src/rust/agent/explanations.rs b/src/rust/agent/explanations.rs index efd20e79..905a6070 100644 --- a/src/rust/agent/explanations.rs +++ b/src/rust/agent/explanations.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2025 ECHIDNA Project Contributors -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 #![allow(dead_code)] diff --git a/src/rust/agent/memory.rs b/src/rust/agent/memory.rs index 6c105622..ae5d21e7 100644 --- a/src/rust/agent/memory.rs +++ b/src/rust/agent/memory.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2025 ECHIDNA Project Contributors -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 #![allow(dead_code)] diff --git a/src/rust/agent/meta_controller.rs b/src/rust/agent/meta_controller.rs index 3f2e6bbd..6838109d 100644 --- a/src/rust/agent/meta_controller.rs +++ b/src/rust/agent/meta_controller.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath) -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // (MPL-2.0 is automatic legal fallback until PMPL is formally recognised) //! MetaController — coordinates prover backends with coprocessor backends. diff --git a/src/rust/agent/mod.rs b/src/rust/agent/mod.rs index 3db453d7..13354693 100644 --- a/src/rust/agent/mod.rs +++ b/src/rust/agent/mod.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2025 ECHIDNA Project Contributors -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 #![allow(dead_code)] diff --git a/src/rust/agent/planner.rs b/src/rust/agent/planner.rs index 363bcc83..cf0c35ec 100644 --- a/src/rust/agent/planner.rs +++ b/src/rust/agent/planner.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2025 ECHIDNA Project Contributors -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 #![allow(dead_code)] diff --git a/src/rust/agent/router.rs b/src/rust/agent/router.rs index 3784588d..80906c52 100644 --- a/src/rust/agent/router.rs +++ b/src/rust/agent/router.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2025 ECHIDNA Project Contributors -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 #![allow(dead_code)] diff --git a/src/rust/agent/swarm.rs b/src/rust/agent/swarm.rs index 708cb082..48a12c28 100644 --- a/src/rust/agent/swarm.rs +++ b/src/rust/agent/swarm.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! 007-style swarm dispatcher over a `DesignProblem`. //! diff --git a/src/rust/anomaly_detection.rs b/src/rust/anomaly_detection.rs index 21c6ba41..d63110af 100644 --- a/src/rust/anomaly_detection.rs +++ b/src/rust/anomaly_detection.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Anomaly detection for proof validation use serde::{Deserialize, Serialize}; diff --git a/src/rust/aspect.rs b/src/rust/aspect.rs index 87322a62..25fc2699 100644 --- a/src/rust/aspect.rs +++ b/src/rust/aspect.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2025 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Aspect tagging system for classifying theorems by domain/topic //! diff --git a/src/rust/coprocessor/audio.rs b/src/rust/coprocessor/audio.rs index 4b0c0126..b6e4dbbe 100644 --- a/src/rust/coprocessor/audio.rs +++ b/src/rust/coprocessor/audio.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // (MPL-2.0 is automatic legal fallback until PMPL is formally recognised) // hypatia: allow code_safety/unwrap_without_check diff --git a/src/rust/coprocessor/crypto.rs b/src/rust/coprocessor/crypto.rs index 0b5bb88d..bbefb785 100644 --- a/src/rust/coprocessor/crypto.rs +++ b/src/rust/coprocessor/crypto.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath) -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // (MPL-2.0 is automatic legal fallback until PMPL is formally recognised) //! Crypto coprocessor — computational cryptographic primitives. diff --git a/src/rust/coprocessor/dsp.rs b/src/rust/coprocessor/dsp.rs index d525ed62..e2d35a4b 100644 --- a/src/rust/coprocessor/dsp.rs +++ b/src/rust/coprocessor/dsp.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath) -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // (MPL-2.0 is automatic legal fallback until PMPL is formally recognised) //! DSP coprocessor — FFT / IFFT / window functions via `rustfft`. diff --git a/src/rust/coprocessor/flint.rs b/src/rust/coprocessor/flint.rs index 0d1a2a78..8384cc27 100644 --- a/src/rust/coprocessor/flint.rs +++ b/src/rust/coprocessor/flint.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath) -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // (MPL-2.0 is automatic legal fallback until PMPL is formally recognised) //! FLINT coprocessor backend — integer and polynomial algebra via C FFI. diff --git a/src/rust/coprocessor/fpga.rs b/src/rust/coprocessor/fpga.rs index a31baa36..b3763f5b 100644 --- a/src/rust/coprocessor/fpga.rs +++ b/src/rust/coprocessor/fpga.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath) -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // (MPL-2.0 is automatic legal fallback until PMPL is formally recognised) //! FPGA / hardware-synthesis coprocessor — subprocess to yosys. diff --git a/src/rust/coprocessor/gap.rs b/src/rust/coprocessor/gap.rs index b5070e2d..0efe3016 100644 --- a/src/rust/coprocessor/gap.rs +++ b/src/rust/coprocessor/gap.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath) -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // (MPL-2.0 is automatic legal fallback until PMPL is formally recognised) //! GAP group-theory coprocessor — subprocess to `gap`. diff --git a/src/rust/coprocessor/graphics.rs b/src/rust/coprocessor/graphics.rs index 877e1a05..a745eb80 100644 --- a/src/rust/coprocessor/graphics.rs +++ b/src/rust/coprocessor/graphics.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath) -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // (MPL-2.0 is automatic legal fallback until PMPL is formally recognised) //! Graphics coprocessor — 2-D SVG rendering, no GPU dependency. diff --git a/src/rust/coprocessor/io.rs b/src/rust/coprocessor/io.rs index c2d359b4..bcff7653 100644 --- a/src/rust/coprocessor/io.rs +++ b/src/rust/coprocessor/io.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath) -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // (MPL-2.0 is automatic legal fallback until PMPL is formally recognised) //! IO coprocessor — file / stream operations via `tokio::fs`. diff --git a/src/rust/coprocessor/julia_bridge.rs b/src/rust/coprocessor/julia_bridge.rs index b73e4072..71a4dfa9 100644 --- a/src/rust/coprocessor/julia_bridge.rs +++ b/src/rust/coprocessor/julia_bridge.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath) -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // (MPL-2.0 is automatic legal fallback until PMPL is formally recognised) //! Rust ↔ Julia coprocessor bridge. diff --git a/src/rust/coprocessor/macaulay2.rs b/src/rust/coprocessor/macaulay2.rs index d7276e0f..49c997e5 100644 --- a/src/rust/coprocessor/macaulay2.rs +++ b/src/rust/coprocessor/macaulay2.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath) -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // (MPL-2.0 is automatic legal fallback until PMPL is formally recognised) //! Macaulay2 algebraic-geometry coprocessor — subprocess to `M2`. diff --git a/src/rust/coprocessor/math.rs b/src/rust/coprocessor/math.rs index c0bcf799..ab38f526 100644 --- a/src/rust/coprocessor/math.rs +++ b/src/rust/coprocessor/math.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath) -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // (MPL-2.0 is automatic legal fallback until PMPL is formally recognised) //! Math coprocessor — exact arithmetic + number theory. diff --git a/src/rust/coprocessor/maxima.rs b/src/rust/coprocessor/maxima.rs index c064bb6b..774ac8f0 100644 --- a/src/rust/coprocessor/maxima.rs +++ b/src/rust/coprocessor/maxima.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath) -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // (MPL-2.0 is automatic legal fallback until PMPL is formally recognised) //! Maxima symbolic-algebra coprocessor — subprocess to `maxima`. diff --git a/src/rust/coprocessor/mod.rs b/src/rust/coprocessor/mod.rs index 3e168196..485f6df1 100644 --- a/src/rust/coprocessor/mod.rs +++ b/src/rust/coprocessor/mod.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath) -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // (MPL-2.0 is automatic legal fallback until PMPL is formally recognised) //! Coprocessor abstraction. diff --git a/src/rust/coprocessor/parigp.rs b/src/rust/coprocessor/parigp.rs index 48554ec9..86ed07e6 100644 --- a/src/rust/coprocessor/parigp.rs +++ b/src/rust/coprocessor/parigp.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath) -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // (MPL-2.0 is automatic legal fallback until PMPL is formally recognised) //! PARI/GP number-theory coprocessor — subprocess to `gp`. diff --git a/src/rust/coprocessor/physics.rs b/src/rust/coprocessor/physics.rs index 5d0383f4..b8b4fec9 100644 --- a/src/rust/coprocessor/physics.rs +++ b/src/rust/coprocessor/physics.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath) -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // (MPL-2.0 is automatic legal fallback until PMPL is formally recognised) //! Physics coprocessor — numerical ODE integration + invariant oracles. diff --git a/src/rust/coprocessor/singular.rs b/src/rust/coprocessor/singular.rs index 2647df0f..f894e0c3 100644 --- a/src/rust/coprocessor/singular.rs +++ b/src/rust/coprocessor/singular.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath) -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // (MPL-2.0 is automatic legal fallback until PMPL is formally recognised) //! Singular polynomial-algebra coprocessor — subprocess to `Singular`. diff --git a/src/rust/coprocessor/tensor.rs b/src/rust/coprocessor/tensor.rs index a86e0cf0..1a65dde4 100644 --- a/src/rust/coprocessor/tensor.rs +++ b/src/rust/coprocessor/tensor.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath) -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // (MPL-2.0 is automatic legal fallback until PMPL is formally recognised) //! Tensor coprocessor — dense linear algebra via `nalgebra`. diff --git a/src/rust/coprocessor/trust.rs b/src/rust/coprocessor/trust.rs index 1aa8f9df..5bd725d2 100644 --- a/src/rust/coprocessor/trust.rs +++ b/src/rust/coprocessor/trust.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath) -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // (MPL-2.0 is automatic legal fallback until PMPL is formally recognised) //! Coprocessor trust-tier classification. diff --git a/src/rust/coprocessor/types.rs b/src/rust/coprocessor/types.rs index fbf4507e..777dca24 100644 --- a/src/rust/coprocessor/types.rs +++ b/src/rust/coprocessor/types.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath) -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // (MPL-2.0 is automatic legal fallback until PMPL is formally recognised) //! Coprocessor type surface. diff --git a/src/rust/coprocessor/vector.rs b/src/rust/coprocessor/vector.rs index 7779b03a..dc3495f5 100644 --- a/src/rust/coprocessor/vector.rs +++ b/src/rust/coprocessor/vector.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath) -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // (MPL-2.0 is automatic legal fallback until PMPL is formally recognised) //! Vector coprocessor — dense f64 arithmetic. diff --git a/src/rust/corpus/acl2_books.rs b/src/rust/corpus/acl2_books.rs index 984f505a..3c0ec0a1 100644 --- a/src/rust/corpus/acl2_books.rs +++ b/src/rust/corpus/acl2_books.rs @@ -1,6 +1,6 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! ACL2 community-books adapter for the corpus indexer. //! diff --git a/src/rust/corpus/agda.rs b/src/rust/corpus/agda.rs index 25c65a51..8e82fecf 100644 --- a/src/rust/corpus/agda.rs +++ b/src/rust/corpus/agda.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Agda adapter for the corpus indexer. //! diff --git a/src/rust/corpus/coq.rs b/src/rust/corpus/coq.rs index 55bde97f..1b998a91 100644 --- a/src/rust/corpus/coq.rs +++ b/src/rust/corpus/coq.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Coq adapter for the corpus indexer — Step 2 of the N-dim plan. //! diff --git a/src/rust/corpus/dafny.rs b/src/rust/corpus/dafny.rs index f6418daf..48077eb9 100644 --- a/src/rust/corpus/dafny.rs +++ b/src/rust/corpus/dafny.rs @@ -1,6 +1,6 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Dafny adapter for the corpus indexer. //! diff --git a/src/rust/corpus/embed.rs b/src/rust/corpus/embed.rs index 677a13f4..a47955f0 100644 --- a/src/rust/corpus/embed.rs +++ b/src/rust/corpus/embed.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Vector-octad embeddings for the corpus — Step 5 of the N-dim //! VeriSim plan. diff --git a/src/rust/corpus/fstar.rs b/src/rust/corpus/fstar.rs index 8c48ccf2..9ce767b6 100644 --- a/src/rust/corpus/fstar.rs +++ b/src/rust/corpus/fstar.rs @@ -1,6 +1,6 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! F* adapter for the corpus indexer. //! diff --git a/src/rust/corpus/hol4.rs b/src/rust/corpus/hol4.rs index affc20cc..50b9304f 100644 --- a/src/rust/corpus/hol4.rs +++ b/src/rust/corpus/hol4.rs @@ -1,6 +1,6 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! HOL4 adapter for the corpus indexer. //! diff --git a/src/rust/corpus/hol_light.rs b/src/rust/corpus/hol_light.rs index 910b26d2..b0c19d80 100644 --- a/src/rust/corpus/hol_light.rs +++ b/src/rust/corpus/hol_light.rs @@ -1,6 +1,6 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! HOL Light adapter for the corpus indexer. //! diff --git a/src/rust/corpus/idris2.rs b/src/rust/corpus/idris2.rs index 822101fa..baa0ecfe 100644 --- a/src/rust/corpus/idris2.rs +++ b/src/rust/corpus/idris2.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Idris 2 adapter for the corpus indexer — Step 2 of the N-dim plan. //! diff --git a/src/rust/corpus/isabelle.rs b/src/rust/corpus/isabelle.rs index 2a0ac122..caa88ef2 100644 --- a/src/rust/corpus/isabelle.rs +++ b/src/rust/corpus/isabelle.rs @@ -1,6 +1,6 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Isabelle/HOL AFP adapter for the corpus indexer. //! diff --git a/src/rust/corpus/lean.rs b/src/rust/corpus/lean.rs index 962f19f5..75de54eb 100644 --- a/src/rust/corpus/lean.rs +++ b/src/rust/corpus/lean.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Lean 4 adapter for the corpus indexer — Step 2 of the N-dim plan. //! diff --git a/src/rust/corpus/metamath.rs b/src/rust/corpus/metamath.rs index bf37bfed..dcd07851 100644 --- a/src/rust/corpus/metamath.rs +++ b/src/rust/corpus/metamath.rs @@ -1,6 +1,6 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! MetaMath adapter for the corpus indexer. //! diff --git a/src/rust/corpus/metrics.rs b/src/rust/corpus/metrics.rs index 2652a4d3..c7b82c80 100644 --- a/src/rust/corpus/metrics.rs +++ b/src/rust/corpus/metrics.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Per-entry metrics tensor — Step 4 of the N-dim VeriSim plan. //! diff --git a/src/rust/corpus/minif2f.rs b/src/rust/corpus/minif2f.rs index 294b86fe..7d9fbc11 100644 --- a/src/rust/corpus/minif2f.rs +++ b/src/rust/corpus/minif2f.rs @@ -1,6 +1,6 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! MiniF2F adapter for the corpus indexer. //! diff --git a/src/rust/corpus/mizar.rs b/src/rust/corpus/mizar.rs index 82129e38..ffde21a3 100644 --- a/src/rust/corpus/mizar.rs +++ b/src/rust/corpus/mizar.rs @@ -1,6 +1,6 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Mizar adapter for the corpus indexer. //! diff --git a/src/rust/corpus/mod.rs b/src/rust/corpus/mod.rs index e1d93f33..f1dc1840 100644 --- a/src/rust/corpus/mod.rs +++ b/src/rust/corpus/mod.rs @@ -1,6 +1,6 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Project-corpus indexer. //! diff --git a/src/rust/corpus/octad.rs b/src/rust/corpus/octad.rs index 92f8bf10..3bed3eff 100644 --- a/src/rust/corpus/octad.rs +++ b/src/rust/corpus/octad.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! 8-modality octad emission for the corpus — Step 3 of the N-dim //! VeriSim plan. diff --git a/src/rust/corpus/proofnet.rs b/src/rust/corpus/proofnet.rs index eda3fbca..2d5e37d4 100644 --- a/src/rust/corpus/proofnet.rs +++ b/src/rust/corpus/proofnet.rs @@ -1,6 +1,6 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! ProofNet adapter for the corpus indexer. //! diff --git a/src/rust/corpus/query.rs b/src/rust/corpus/query.rs index c030b581..01e40f2e 100644 --- a/src/rust/corpus/query.rs +++ b/src/rust/corpus/query.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Multi-axis query DSL — capstone of the N-dim VeriSim plan. //! diff --git a/src/rust/corpus/smtlib.rs b/src/rust/corpus/smtlib.rs index 32e31ae2..bc0a8bf9 100644 --- a/src/rust/corpus/smtlib.rs +++ b/src/rust/corpus/smtlib.rs @@ -1,6 +1,6 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! SMT-LIB v2 adapter for the corpus indexer. //! diff --git a/src/rust/corpus/tptp.rs b/src/rust/corpus/tptp.rs index b81d5821..fa51322d 100644 --- a/src/rust/corpus/tptp.rs +++ b/src/rust/corpus/tptp.rs @@ -1,6 +1,6 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! TPTP (Thousands of Problems for Theorem Provers) adapter for the //! corpus indexer. diff --git a/src/rust/corpus/why3.rs b/src/rust/corpus/why3.rs index f06c6ce0..0294c5a7 100644 --- a/src/rust/corpus/why3.rs +++ b/src/rust/corpus/why3.rs @@ -1,6 +1,6 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Why3 adapter for the corpus indexer. //! diff --git a/src/rust/diagnostics/corpus_monitor.rs b/src/rust/diagnostics/corpus_monitor.rs index c6577352..10c40138 100644 --- a/src/rust/diagnostics/corpus_monitor.rs +++ b/src/rust/diagnostics/corpus_monitor.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Monitor corpus health: proofs, premises, size metrics use chrono::{DateTime, Utc}; diff --git a/src/rust/diagnostics/fallback_monitor.rs b/src/rust/diagnostics/fallback_monitor.rs index b100b1f3..da090578 100644 --- a/src/rust/diagnostics/fallback_monitor.rs +++ b/src/rust/diagnostics/fallback_monitor.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Cosine fallback SLA monitoring and cache health tracking use serde::{Deserialize, Serialize}; diff --git a/src/rust/diagnostics/gnn_training.rs b/src/rust/diagnostics/gnn_training.rs index 7349eeb9..2b800fa8 100644 --- a/src/rust/diagnostics/gnn_training.rs +++ b/src/rust/diagnostics/gnn_training.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // GNN model training integration with health monitoring use chrono::{DateTime, Utc}; diff --git a/src/rust/diagnostics/health.rs b/src/rust/diagnostics/health.rs index 79035347..0a109b46 100644 --- a/src/rust/diagnostics/health.rs +++ b/src/rust/diagnostics/health.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Health status monitoring for echidna services use chrono::{DateTime, Utc}; diff --git a/src/rust/diagnostics/mod.rs b/src/rust/diagnostics/mod.rs index 1ec2d5c1..26b352db 100644 --- a/src/rust/diagnostics/mod.rs +++ b/src/rust/diagnostics/mod.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Health diagnostics and monitoring for echidna pub mod corpus_monitor; diff --git a/src/rust/diagnostics/nesy_validation.rs b/src/rust/diagnostics/nesy_validation.rs index 14cb6ca2..95aa2581 100644 --- a/src/rust/diagnostics/nesy_validation.rs +++ b/src/rust/diagnostics/nesy_validation.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // NeSy (Neurosymbolic) agreement validation between GNN and symbolic solvers use serde::{Deserialize, Serialize}; diff --git a/src/rust/diagnostics/proof_failure.rs b/src/rust/diagnostics/proof_failure.rs index 3bbec30f..4a68824a 100644 --- a/src/rust/diagnostics/proof_failure.rs +++ b/src/rust/diagnostics/proof_failure.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Proof failure diagnostics. //! diff --git a/src/rust/disciplines/detector.rs b/src/rust/disciplines/detector.rs index e103ea0b..832b2412 100644 --- a/src/rust/disciplines/detector.rs +++ b/src/rust/disciplines/detector.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Discipline detector — extracts type-discipline tags from corpus //! entry text by scoring [`super::registry::MarkerRegistry`] markers. diff --git a/src/rust/disciplines/mod.rs b/src/rust/disciplines/mod.rs index b3a64c11..5e1febc5 100644 --- a/src/rust/disciplines/mod.rs +++ b/src/rust/disciplines/mod.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) diff --git a/src/rust/disciplines/registry.rs b/src/rust/disciplines/registry.rs index 476d8770..3dc3923a 100644 --- a/src/rust/disciplines/registry.rs +++ b/src/rust/disciplines/registry.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Discipline marker registry for the corpus-side detector. //! diff --git a/src/rust/dispatch.rs b/src/rust/dispatch.rs index 8665c45b..4008a731 100644 --- a/src/rust/dispatch.rs +++ b/src/rust/dispatch.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Prover dispatch module //! diff --git a/src/rust/exchange/dedukti.rs b/src/rust/exchange/dedukti.rs index fa674b75..abd6ab0c 100644 --- a/src/rust/exchange/dedukti.rs +++ b/src/rust/exchange/dedukti.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Dedukti/Lambdapi proof exchange format //! diff --git a/src/rust/exchange/lambdapi.rs b/src/rust/exchange/lambdapi.rs index 733cc554..2f59209a 100644 --- a/src/rust/exchange/lambdapi.rs +++ b/src/rust/exchange/lambdapi.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell //! Lambdapi proof exchange format. diff --git a/src/rust/exchange/mod.rs b/src/rust/exchange/mod.rs index 71864cb5..f3ce2cb2 100644 --- a/src/rust/exchange/mod.rs +++ b/src/rust/exchange/mod.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell //! Cross-prover proof exchange module diff --git a/src/rust/exchange/opentheory.rs b/src/rust/exchange/opentheory.rs index 8b61561e..1acfd4ee 100644 --- a/src/rust/exchange/opentheory.rs +++ b/src/rust/exchange/opentheory.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! OpenTheory proof exchange format //! diff --git a/src/rust/exchange/smtcoq.rs b/src/rust/exchange/smtcoq.rs index 8b346a10..38314d6f 100644 --- a/src/rust/exchange/smtcoq.rs +++ b/src/rust/exchange/smtcoq.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell //! SMTCoq bridge — STUB BRIDGE (parse-and-skeleton only). diff --git a/src/rust/exchange/smtlib.rs b/src/rust/exchange/smtlib.rs index fa41ca35..3539e814 100644 --- a/src/rust/exchange/smtlib.rs +++ b/src/rust/exchange/smtlib.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell //! SMT-LIB v2 exchange and cross-solver normalisation. diff --git a/src/rust/exchange/tptp.rs b/src/rust/exchange/tptp.rs index 6be625e2..8211fc13 100644 --- a/src/rust/exchange/tptp.rs +++ b/src/rust/exchange/tptp.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell //! TPTP (Thousands of Problems for Theorem Provers) exchange format diff --git a/src/rust/executor/bounded.rs b/src/rust/executor/bounded.rs index 7e910f88..d8a82443 100644 --- a/src/rust/executor/bounded.rs +++ b/src/rust/executor/bounded.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) // // executor/bounded.rs — Output-capped command execution. diff --git a/src/rust/executor/mod.rs b/src/rust/executor/mod.rs index 23360773..fb736fdf 100644 --- a/src/rust/executor/mod.rs +++ b/src/rust/executor/mod.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Solver execution and sandboxing module //! diff --git a/src/rust/executor/sandbox.rs b/src/rust/executor/sandbox.rs index f3c6e13e..41f5cbdb 100644 --- a/src/rust/executor/sandbox.rs +++ b/src/rust/executor/sandbox.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Solver sandboxing for process isolation //! diff --git a/src/rust/fault_tolerance/mod.rs b/src/rust/fault_tolerance/mod.rs index f0c1a2b4..78a5bae5 100644 --- a/src/rust/fault_tolerance/mod.rs +++ b/src/rust/fault_tolerance/mod.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Fault-tolerance primitives for echidna prover backends // Includes circuit breakers, retry policies, bulkheads diff --git a/src/rust/fault_tolerance/resilience.rs b/src/rust/fault_tolerance/resilience.rs index 8b92c69b..2d5700e4 100644 --- a/src/rust/fault_tolerance/resilience.rs +++ b/src/rust/fault_tolerance/resilience.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Circuit breaker, retry policy, bulkhead isolation for fault tolerance use std::fmt; diff --git a/src/rust/ffi/mod.rs b/src/rust/ffi/mod.rs index 495d407a..0a06ef2e 100644 --- a/src/rust/ffi/mod.rs +++ b/src/rust/ffi/mod.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2025 Jonathan D.A. Jewell -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! FFI bindings for ECHIDNA //! diff --git a/src/rust/ffi/spark_axiom.rs b/src/rust/ffi/spark_axiom.rs index 54c9df1b..339ca418 100644 --- a/src/rust/ffi/spark_axiom.rs +++ b/src/rust/ffi/spark_axiom.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // (MPL-2.0 is automatic legal fallback until PMPL is formally recognised) // //! Rust bindings to the SPARK-verified axiom-policy layer. diff --git a/src/rust/gnn/client.rs b/src/rust/gnn/client.rs index 4108fbd6..e637ba00 100644 --- a/src/rust/gnn/client.rs +++ b/src/rust/gnn/client.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell #![forbid(unsafe_code)] diff --git a/src/rust/gnn/embeddings.rs b/src/rust/gnn/embeddings.rs index 1e2ae379..ddb29dfb 100644 --- a/src/rust/gnn/embeddings.rs +++ b/src/rust/gnn/embeddings.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell #![forbid(unsafe_code)] diff --git a/src/rust/gnn/fallback_monitor.rs b/src/rust/gnn/fallback_monitor.rs index 36bab5d6..bb802f1f 100644 --- a/src/rust/gnn/fallback_monitor.rs +++ b/src/rust/gnn/fallback_monitor.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Monitor cosine similarity fallback performance and SLA compliance use serde::{Deserialize, Serialize}; diff --git a/src/rust/gnn/graph.rs b/src/rust/gnn/graph.rs index 2c3efbfc..213376a9 100644 --- a/src/rust/gnn/graph.rs +++ b/src/rust/gnn/graph.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell #![forbid(unsafe_code)] diff --git a/src/rust/gnn/guided_search.rs b/src/rust/gnn/guided_search.rs index a5291f0b..cda739b5 100644 --- a/src/rust/gnn/guided_search.rs +++ b/src/rust/gnn/guided_search.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell #![forbid(unsafe_code)] diff --git a/src/rust/gnn/mod.rs b/src/rust/gnn/mod.rs index 5f9510d6..cfa11079 100644 --- a/src/rust/gnn/mod.rs +++ b/src/rust/gnn/mod.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell #![forbid(unsafe_code)] diff --git a/src/rust/groove.rs b/src/rust/groove.rs index 2079e70f..f0fb465a 100644 --- a/src/rust/groove.rs +++ b/src/rust/groove.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) // //! Gossamer Groove endpoint for ECHIDNA. diff --git a/src/rust/integration.rs b/src/rust/integration.rs index 7ec80ba1..658a8ef6 100644 --- a/src/rust/integration.rs +++ b/src/rust/integration.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Integration layer connecting Rust backend ↔ Julia ML ↔ ReScript UI //! diff --git a/src/rust/integrations/conceptnet.rs b/src/rust/integrations/conceptnet.rs index 1c70b02f..6e4ff546 100644 --- a/src/rust/integrations/conceptnet.rs +++ b/src/rust/integrations/conceptnet.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2025 ECHIDNA Project Contributors -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! ConceptNet Integration - Common-sense knowledge augmentation //! diff --git a/src/rust/integrity/io.rs b/src/rust/integrity/io.rs index 957bde75..381b984d 100644 --- a/src/rust/integrity/io.rs +++ b/src/rust/integrity/io.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) //! Sync bounded read for operator-controlled config files. diff --git a/src/rust/integrity/mod.rs b/src/rust/integrity/mod.rs index e277874d..9775ff64 100644 --- a/src/rust/integrity/mod.rs +++ b/src/rust/integrity/mod.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Solver binary integrity verification module //! diff --git a/src/rust/integrity/solver_integrity.rs b/src/rust/integrity/solver_integrity.rs index a9ee7f98..4c17b61e 100644 --- a/src/rust/integrity/solver_integrity.rs +++ b/src/rust/integrity/solver_integrity.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Solver binary integrity verification using SHAKE3-512 and BLAKE3 //! diff --git a/src/rust/ipc/mod.rs b/src/rust/ipc/mod.rs index 1c309d23..42ada5f3 100644 --- a/src/rust/ipc/mod.rs +++ b/src/rust/ipc/mod.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell //! L1 IPC transport layer — Cap'n Proto over Unix domain sockets. diff --git a/src/rust/learning/buchholz_rank.rs b/src/rust/learning/buchholz_rank.rs index 9eab9101..714a2e54 100644 --- a/src/rust/learning/buchholz_rank.rs +++ b/src/rust/learning/buchholz_rank.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Rank-function search for unbudgeted `wf-<ᵇʳᶠ_`. //! diff --git a/src/rust/learning/curriculum.rs b/src/rust/learning/curriculum.rs index d26d87ab..66f97201 100644 --- a/src/rust/learning/curriculum.rs +++ b/src/rust/learning/curriculum.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) //! Curriculum scheduler. diff --git a/src/rust/learning/daemon.rs b/src/rust/learning/daemon.rs index a081b2a5..e40e9d6f 100644 --- a/src/rust/learning/daemon.rs +++ b/src/rust/learning/daemon.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) //! Continuous self-learning daemon. diff --git a/src/rust/learning/design_search.rs b/src/rust/learning/design_search.rs index 095623c6..743dfbdf 100644 --- a/src/rust/learning/design_search.rs +++ b/src/rust/learning/design_search.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Simulated annealing over **proof-design space** (not tactic space). //! diff --git a/src/rust/learning/mcts.rs b/src/rust/learning/mcts.rs index 8641ee3c..a55252c2 100644 --- a/src/rust/learning/mcts.rs +++ b/src/rust/learning/mcts.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) //! Monte Carlo Tree Search over tactic space. diff --git a/src/rust/learning/mod.rs b/src/rust/learning/mod.rs index a3923882..1c200f51 100644 --- a/src/rust/learning/mod.rs +++ b/src/rust/learning/mod.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) //! Continuous self-learning loop for ECHIDNA. diff --git a/src/rust/learning/self_play.rs b/src/rust/learning/self_play.rs index 14febc91..fb1a4a1d 100644 --- a/src/rust/learning/self_play.rs +++ b/src/rust/learning/self_play.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) //! Self-play corpus generator. diff --git a/src/rust/lib.rs b/src/rust/lib.rs index 6eb1932f..c927b4f5 100644 --- a/src/rust/lib.rs +++ b/src/rust/lib.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2025 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! ECHIDNA: Extensible Cognitive Hybrid Intelligence for Deductive Neural Assistance //! diff --git a/src/rust/llm.rs b/src/rust/llm.rs index c5b9d462..859560f2 100644 --- a/src/rust/llm.rs +++ b/src/rust/llm.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Frontier LLM integration for ECHIDNA //! //! Connects to frontier language models (Claude, GPT-4, etc.) via BoJ Server diff --git a/src/rust/main.rs b/src/rust/main.rs index 2ac819bd..b6674d6d 100644 --- a/src/rust/main.rs +++ b/src/rust/main.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2025 Jonathan D.A. Jewell -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! ECHIDNA CLI - Main binary entry point //! diff --git a/src/rust/neural.rs b/src/rust/neural.rs index b11f0374..a0aa93eb 100644 --- a/src/rust/neural.rs +++ b/src/rust/neural.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2025 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Neural premise selection and tactic suggestion //! diff --git a/src/rust/output.rs b/src/rust/output.rs index 232a30e6..b897b387 100644 --- a/src/rust/output.rs +++ b/src/rust/output.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2025 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Output formatting module for CLI //! diff --git a/src/rust/parsers/mod.rs b/src/rust/parsers/mod.rs index 8f266062..3de3c2ad 100644 --- a/src/rust/parsers/mod.rs +++ b/src/rust/parsers/mod.rs @@ -1,4 +1,4 @@ // SPDX-FileCopyrightText: 2025 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Parser utilities for various theorem prover formats diff --git a/src/rust/proof_encoding.rs b/src/rust/proof_encoding.rs index a871a5ae..87440458 100644 --- a/src/rust/proof_encoding.rs +++ b/src/rust/proof_encoding.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath) -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Proof Encoding — CBOR serialisation and identity hashing for VeriSimDB octads. //! diff --git a/src/rust/proof_search.rs b/src/rust/proof_search.rs index d9621f3c..de39515c 100644 --- a/src/rust/proof_search.rs +++ b/src/rust/proof_search.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Proof search strategies for ECHIDNA //! //! This module implements pluggable proof search strategies following the diff --git a/src/rust/provers/abc.rs b/src/rust/provers/abc.rs index c898ef29..f8b4de55 100644 --- a/src/rust/provers/abc.rs +++ b/src/rust/provers/abc.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) //! ABC Logic Synthesis and Formal Verification Backend diff --git a/src/rust/provers/abella.rs b/src/rust/provers/abella.rs index 5f9781ee..b51a0c10 100644 --- a/src/rust/provers/abella.rs +++ b/src/rust/provers/abella.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) //! Abella — classical Axis-1 prover for nominal logic / HOAS / λ-tree syntax. diff --git a/src/rust/provers/acl2.rs b/src/rust/provers/acl2.rs index 0fe83690..666e6356 100644 --- a/src/rust/provers/acl2.rs +++ b/src/rust/provers/acl2.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2025 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 #![allow(dead_code)] diff --git a/src/rust/provers/acl2s.rs b/src/rust/provers/acl2s.rs index c6c34fe9..cfab3217 100644 --- a/src/rust/provers/acl2s.rs +++ b/src/rust/provers/acl2s.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) //! ACL2s — sibling dialect to ACL2 with richer type annotations and diff --git a/src/rust/provers/agda.rs b/src/rust/provers/agda.rs index 3d6106a3..aaefc3ef 100644 --- a/src/rust/provers/agda.rs +++ b/src/rust/provers/agda.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2025 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 #![allow(dead_code)] diff --git a/src/rust/provers/agsyhol.rs b/src/rust/provers/agsyhol.rs index 4900435a..9c19e985 100644 --- a/src/rust/provers/agsyhol.rs +++ b/src/rust/provers/agsyhol.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! agsyHOL higher-order automated theorem prover backend diff --git a/src/rust/provers/alloy.rs b/src/rust/provers/alloy.rs index 5c63bab8..8bd84aa1 100644 --- a/src/rust/provers/alloy.rs +++ b/src/rust/provers/alloy.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) //! Alloy Relational Model Finder Backend diff --git a/src/rust/provers/altergo.rs b/src/rust/provers/altergo.rs index 0e9515bc..8c9053b9 100644 --- a/src/rust/provers/altergo.rs +++ b/src/rust/provers/altergo.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Alt-Ergo backend //! diff --git a/src/rust/provers/aprove.rs b/src/rust/provers/aprove.rs index c1b61deb..bef9fdda 100644 --- a/src/rust/provers/aprove.rs +++ b/src/rust/provers/aprove.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! AProVE (Automated Program Verification Engine) backend //! diff --git a/src/rust/provers/arend.rs b/src/rust/provers/arend.rs index d560a3cd..07938cfe 100644 --- a/src/rust/provers/arend.rs +++ b/src/rust/provers/arend.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) // //! Arend — cubical HoTT prover (JetBrains). Distinct from Agda's diff --git a/src/rust/provers/athena.rs b/src/rust/provers/athena.rs index 069455c2..36d4f3c5 100644 --- a/src/rust/provers/athena.rs +++ b/src/rust/provers/athena.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) // //! Athena — Arkoudas's denotational-proof-language. Unique in having diff --git a/src/rust/provers/boogie.rs b/src/rust/provers/boogie.rs index e5f1bfd7..84a1fcef 100644 --- a/src/rust/provers/boogie.rs +++ b/src/rust/provers/boogie.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) //! Boogie — intermediate verification language standalone backend. diff --git a/src/rust/provers/cadical.rs b/src/rust/provers/cadical.rs index 9f766d73..4a192be4 100644 --- a/src/rust/provers/cadical.rs +++ b/src/rust/provers/cadical.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) //! CaDiCaL SAT Solver Backend diff --git a/src/rust/provers/cameleer.rs b/src/rust/provers/cameleer.rs index 61a52172..ac51e6e7 100644 --- a/src/rust/provers/cameleer.rs +++ b/src/rust/provers/cameleer.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) //! Cameleer — OCaml front-end for Why3. diff --git a/src/rust/provers/cbmc.rs b/src/rust/provers/cbmc.rs index 4ece2066..b1c2584f 100644 --- a/src/rust/provers/cbmc.rs +++ b/src/rust/provers/cbmc.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) //! CBMC Bounded Model Checker Backend diff --git a/src/rust/provers/chuffed.rs b/src/rust/provers/chuffed.rs index 910f3072..96808cae 100644 --- a/src/rust/provers/chuffed.rs +++ b/src/rust/provers/chuffed.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Chuffed lazy clause generation CP solver backend #![allow(dead_code)] use super::{ProverBackend, ProverConfig, ProverKind}; diff --git a/src/rust/provers/connection_method.rs b/src/rust/provers/connection_method.rs index c0069ca2..c4b1336a 100644 --- a/src/rust/provers/connection_method.rs +++ b/src/rust/provers/connection_method.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Shared helpers for the connection-method prover family //! (MleanCoP / ileanCoP / nanoCoP). diff --git a/src/rust/provers/coq.rs b/src/rust/provers/coq.rs index 685fc5eb..84645195 100644 --- a/src/rust/provers/coq.rs +++ b/src/rust/provers/coq.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2025 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 #![allow(dead_code)] diff --git a/src/rust/provers/cryptoverif.rs b/src/rust/provers/cryptoverif.rs index 669a54d5..c43721ac 100644 --- a/src/rust/provers/cryptoverif.rs +++ b/src/rust/provers/cryptoverif.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! CryptoVerif backend — automatic prover for cryptographic protocols //! in the computational model. @@ -74,7 +74,7 @@ impl CryptoVerifBackend { /// emitted as the `query` line that drives the prover. fn to_ocv(state: &ProofState) -> String { let mut ocv = String::new(); - ocv.push_str("(* SPDX-License-Identifier: AGPL-3.0-or-later *)\n"); + ocv.push_str("(* SPDX-License-Identifier: MPL-2.0 *)\n"); ocv.push_str("(* CryptoVerif input synthesised by ECHIDNA *)\n\n"); for axiom in &state.context.axioms { ocv.push_str(&format!("def {}.\n", axiom)); diff --git a/src/rust/provers/csi.rs b/src/rust/provers/csi.rs index c77e0635..a14f3390 100644 --- a/src/rust/provers/csi.rs +++ b/src/rust/provers/csi.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! CSI (Confluence and Termination Solver) backend //! diff --git a/src/rust/provers/cubical_agda.rs b/src/rust/provers/cubical_agda.rs index 750cec1e..02963f90 100644 --- a/src/rust/provers/cubical_agda.rs +++ b/src/rust/provers/cubical_agda.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) //! Cubical Agda Backend diff --git a/src/rust/provers/cvc5.rs b/src/rust/provers/cvc5.rs index 35f6c551..1d1682bb 100644 --- a/src/rust/provers/cvc5.rs +++ b/src/rust/provers/cvc5.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2025 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 #![allow(dead_code)] diff --git a/src/rust/provers/dafny.rs b/src/rust/provers/dafny.rs index 56075dcc..6a5a7a65 100644 --- a/src/rust/provers/dafny.rs +++ b/src/rust/provers/dafny.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Dafny auto-active verification backend #![allow(dead_code)] use super::{ProverBackend, ProverConfig, ProverKind}; @@ -21,7 +21,7 @@ impl DafnyBackend { /// Generate a minimal valid Dafny program with assertions for the goal and axioms. fn to_input_format(&self, state: &ProofState) -> Result { let mut s = - String::from("// SPDX-License-Identifier: AGPL-3.0-or-later\nmethod EchidnaGoal() {\n"); + String::from("// SPDX-License-Identifier: MPL-2.0\nmethod EchidnaGoal() {\n"); // Add axioms as assume statements for (i, ax) in state.context.axioms.iter().enumerate() { diff --git a/src/rust/provers/dedukti.rs b/src/rust/provers/dedukti.rs index a4d3f77b..a2d266da 100644 --- a/src/rust/provers/dedukti.rs +++ b/src/rust/provers/dedukti.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) //! Dedukti — classical prover backend for the universal λΠ-modulo logical diff --git a/src/rust/provers/dreal.rs b/src/rust/provers/dreal.rs index 03df6cec..37c216f5 100644 --- a/src/rust/provers/dreal.rs +++ b/src/rust/provers/dreal.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 #![allow(dead_code)] diff --git a/src/rust/provers/easycrypt.rs b/src/rust/provers/easycrypt.rs index bcba49a5..62f7c67f 100644 --- a/src/rust/provers/easycrypt.rs +++ b/src/rust/provers/easycrypt.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! EasyCrypt backend — proof assistant for game-based cryptographic //! security proofs. @@ -77,7 +77,7 @@ impl EasyCryptBackend { /// scripts come from `parse_file`). fn to_ec(state: &ProofState) -> String { let mut ec = String::new(); - ec.push_str("(* SPDX-License-Identifier: AGPL-3.0-or-later *)\n"); + ec.push_str("(* SPDX-License-Identifier: MPL-2.0 *)\n"); ec.push_str("require import AllCore.\n\n"); for (i, axiom) in state.context.axioms.iter().enumerate() { ec.push_str(&format!("axiom ax_{} : {}.\n", i, axiom)); diff --git a/src/rust/provers/elk.rs b/src/rust/provers/elk.rs index 84ad305f..7945609d 100644 --- a/src/rust/provers/elk.rs +++ b/src/rust/provers/elk.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! ELK backend — high-performance reasoner for the OWL 2 EL profile. //! diff --git a/src/rust/provers/eprover.rs b/src/rust/provers/eprover.rs index 0eb8cc10..716198d3 100644 --- a/src/rust/provers/eprover.rs +++ b/src/rust/provers/eprover.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! E Prover backend //! diff --git a/src/rust/provers/faial.rs b/src/rust/provers/faial.rs index 9f47ae9a..3457cf5a 100644 --- a/src/rust/provers/faial.rs +++ b/src/rust/provers/faial.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) //! Faial — lightweight GPU data-race detector backend. diff --git a/src/rust/provers/framac.rs b/src/rust/provers/framac.rs index c8a7a976..d2bc2319 100644 --- a/src/rust/provers/framac.rs +++ b/src/rust/provers/framac.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) //! Frama-C WP (Weakest Precondition) Program Verifier Backend diff --git a/src/rust/provers/fstar.rs b/src/rust/provers/fstar.rs index 314fd436..8a0a54b5 100644 --- a/src/rust/provers/fstar.rs +++ b/src/rust/provers/fstar.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! F* (F-star) backend -- dependent types with effects //! diff --git a/src/rust/provers/glpk.rs b/src/rust/provers/glpk.rs index 316acc7f..fcfed149 100644 --- a/src/rust/provers/glpk.rs +++ b/src/rust/provers/glpk.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! GLPK linear programming (LP/MIP) backend #![allow(dead_code)] use super::{ProverBackend, ProverConfig, ProverKind}; diff --git a/src/rust/provers/gnatprove.rs b/src/rust/provers/gnatprove.rs index a7ca9438..df2470a3 100644 --- a/src/rust/provers/gnatprove.rs +++ b/src/rust/provers/gnatprove.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! GNATprove (SPARK/Ada) auto-active verification backend. //! //! GNATprove is the SPARK toolset's verifier — it discharges proof @@ -40,11 +40,11 @@ impl GNATproveBackend { /// goal is wired as a procedure post-condition so GNATprove proves it. fn to_input_format(&self, state: &ProofState) -> Result<(String, String)> { let mut spec = String::from( - "-- SPDX-License-Identifier: AGPL-3.0-or-later\n\ + "-- SPDX-License-Identifier: MPL-2.0\n\ package Echidna_Goal with SPARK_Mode => On is\n", ); let mut body = String::from( - "-- SPDX-License-Identifier: AGPL-3.0-or-later\n\ + "-- SPDX-License-Identifier: MPL-2.0\n\ package body Echidna_Goal with SPARK_Mode => On is\n", ); @@ -298,7 +298,7 @@ fn split_ada_source(src: &str) -> (String, String) { } const MIN_GPR: &str = "\ --- SPDX-License-Identifier: AGPL-3.0-or-later +-- SPDX-License-Identifier: MPL-2.0 project Echidna_Goal is for Source_Dirs use (\".\"); for Object_Dir use \"obj\"; diff --git a/src/rust/provers/gpuverify.rs b/src/rust/provers/gpuverify.rs index 98e886c3..ab95282b 100644 --- a/src/rust/provers/gpuverify.rs +++ b/src/rust/provers/gpuverify.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) //! GPUVerify — CUDA/OpenCL kernel verification backend. diff --git a/src/rust/provers/hol4.rs b/src/rust/provers/hol4.rs index 910de79b..33416b4d 100644 --- a/src/rust/provers/hol4.rs +++ b/src/rust/provers/hol4.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2025 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 #![allow(dead_code)] diff --git a/src/rust/provers/hol_light.rs b/src/rust/provers/hol_light.rs index 0ef29e68..2aff72f6 100644 --- a/src/rust/provers/hol_light.rs +++ b/src/rust/provers/hol_light.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2025 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 #![allow(dead_code)] diff --git a/src/rust/provers/hp_ecosystem.rs b/src/rust/provers/hp_ecosystem.rs index 9041350d..9658b88c 100644 --- a/src/rust/provers/hp_ecosystem.rs +++ b/src/rust/provers/hp_ecosystem.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) //! Unified HP type-checker ecosystem backend. diff --git a/src/rust/provers/idris2.rs b/src/rust/provers/idris2.rs index 02461de1..2d6f91be 100644 --- a/src/rust/provers/idris2.rs +++ b/src/rust/provers/idris2.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2025 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 #![allow(dead_code)] @@ -844,7 +844,7 @@ impl ProverBackend for Idris2Backend { // Module header output.push_str("-- Generated by ECHIDNA\n"); - output.push_str("-- SPDX-License-Identifier: AGPL-3.0-or-later\n\n"); + output.push_str("-- SPDX-License-Identifier: MPL-2.0\n\n"); output.push_str("module Verify\n\n"); // Default totality diff --git a/src/rust/provers/ileancop.rs b/src/rust/provers/ileancop.rs index 98e7d358..72577098 100644 --- a/src/rust/provers/ileancop.rs +++ b/src/rust/provers/ileancop.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! ileanCoP backend — connection-method prover for intuitionistic //! first-order logic. diff --git a/src/rust/provers/imandra.rs b/src/rust/provers/imandra.rs index d5c5be41..a49e108f 100644 --- a/src/rust/provers/imandra.rs +++ b/src/rust/provers/imandra.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Imandra ML-based reasoning backend for industrial verification #![allow(dead_code)] use super::{ProverBackend, ProverConfig, ProverKind}; diff --git a/src/rust/provers/io.rs b/src/rust/provers/io.rs index 7ed40aed..38513b80 100644 --- a/src/rust/provers/io.rs +++ b/src/rust/provers/io.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) //! Shared IO helpers for prover backends and corpus loaders. diff --git a/src/rust/provers/iprover.rs b/src/rust/provers/iprover.rs index df0c9e72..34fc2ce0 100644 --- a/src/rust/provers/iprover.rs +++ b/src/rust/provers/iprover.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! iProver ATP backend //! diff --git a/src/rust/provers/isabelle.rs b/src/rust/provers/isabelle.rs index 8ab5d0c8..4e640ac0 100644 --- a/src/rust/provers/isabelle.rs +++ b/src/rust/provers/isabelle.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2025 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 #![allow(dead_code)] diff --git a/src/rust/provers/isabelle_zf.rs b/src/rust/provers/isabelle_zf.rs index a0ae3ecb..4781278a 100644 --- a/src/rust/provers/isabelle_zf.rs +++ b/src/rust/provers/isabelle_zf.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) //! Isabelle/ZF — Isabelle with the Zermelo-Fraenkel set theory object diff --git a/src/rust/provers/key.rs b/src/rust/provers/key.rs index 84378c30..66313266 100644 --- a/src/rust/provers/key.rs +++ b/src/rust/provers/key.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) //! KeY Deductive Java Verification Backend diff --git a/src/rust/provers/keymaerax.rs b/src/rust/provers/keymaerax.rs index f5da4983..5440fb76 100644 --- a/src/rust/provers/keymaerax.rs +++ b/src/rust/provers/keymaerax.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! KeYmaera X backend — differential dynamic logic for hybrid systems //! diff --git a/src/rust/provers/kissat.rs b/src/rust/provers/kissat.rs index 177c2137..4f263660 100644 --- a/src/rust/provers/kissat.rs +++ b/src/rust/provers/kissat.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) //! Kissat SAT Solver Backend diff --git a/src/rust/provers/konclude.rs b/src/rust/provers/konclude.rs index 2b450ae8..2c49e141 100644 --- a/src/rust/provers/konclude.rs +++ b/src/rust/provers/konclude.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Konclude backend — high-performance reasoner for full OWL 2 DL (SROIQ). //! diff --git a/src/rust/provers/lambda_prolog.rs b/src/rust/provers/lambda_prolog.rs index 2641cf50..bb239d8b 100644 --- a/src/rust/provers/lambda_prolog.rs +++ b/src/rust/provers/lambda_prolog.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) // //! λProlog — higher-order logic programming with HOAS. Teyjus and Elpi diff --git a/src/rust/provers/lash.rs b/src/rust/provers/lash.rs index 5c847693..28b4f5fd 100644 --- a/src/rust/provers/lash.rs +++ b/src/rust/provers/lash.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Lash higher-order automated theorem prover backend diff --git a/src/rust/provers/lean.rs b/src/rust/provers/lean.rs index 9903bc1e..c8d8443a 100644 --- a/src/rust/provers/lean.rs +++ b/src/rust/provers/lean.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2025 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 #![allow(dead_code)] diff --git a/src/rust/provers/lean3.rs b/src/rust/provers/lean3.rs index 6cd0273a..9cba0c9e 100644 --- a/src/rust/provers/lean3.rs +++ b/src/rust/provers/lean3.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) //! Lean 3 theorem prover backend. diff --git a/src/rust/provers/leo3.rs b/src/rust/provers/leo3.rs index f1bf3749..4ec63d75 100644 --- a/src/rust/provers/leo3.rs +++ b/src/rust/provers/leo3.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Leo-III higher-order automated theorem prover backend //! diff --git a/src/rust/provers/liquid_haskell.rs b/src/rust/provers/liquid_haskell.rs index bc5abdcb..405b8115 100644 --- a/src/rust/provers/liquid_haskell.rs +++ b/src/rust/provers/liquid_haskell.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Liquid Haskell refinement-types verification backend. //! //! Liquid Haskell extends GHC with refinement types via the @@ -34,7 +34,7 @@ impl LiquidHaskellBackend { /// Generate a minimal Liquid-Haskell-annotated module for the goal. fn to_input_format(&self, state: &ProofState) -> Result { let mut s = String::from( - "-- SPDX-License-Identifier: AGPL-3.0-or-later\n\ + "-- SPDX-License-Identifier: MPL-2.0\n\ {-# LANGUAGE NoImplicitPrelude #-}\n\ module EchidnaGoal where\n\n\ import Prelude hiding (Bool)\n\ diff --git a/src/rust/provers/matita.rs b/src/rust/provers/matita.rs index e6f6b315..9fac041d 100644 --- a/src/rust/provers/matita.rs +++ b/src/rust/provers/matita.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) // //! Matita — Calculus of Inductive Constructions variant (Bologna). diff --git a/src/rust/provers/mercury.rs b/src/rust/provers/mercury.rs index f03e2342..c5416ed6 100644 --- a/src/rust/provers/mercury.rs +++ b/src/rust/provers/mercury.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) // //! Mercury — pure logic programming with polymorphic types and modes. diff --git a/src/rust/provers/metamath.rs b/src/rust/provers/metamath.rs index c19af737..3c690ddb 100644 --- a/src/rust/provers/metamath.rs +++ b/src/rust/provers/metamath.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2025 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 #![allow(dead_code)] diff --git a/src/rust/provers/metitarski.rs b/src/rust/provers/metitarski.rs index 0942b39a..3de3d3d6 100644 --- a/src/rust/provers/metitarski.rs +++ b/src/rust/provers/metitarski.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! MetiTarski ATP backend //! diff --git a/src/rust/provers/mettel2.rs b/src/rust/provers/mettel2.rs index b5f9da1d..56e3fe67 100644 --- a/src/rust/provers/mettel2.rs +++ b/src/rust/provers/mettel2.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! MetTeL2 backend — tableau generator for arbitrary modal logics. //! diff --git a/src/rust/provers/minisat.rs b/src/rust/provers/minisat.rs index 1a7abd34..29426bdc 100644 --- a/src/rust/provers/minisat.rs +++ b/src/rust/provers/minisat.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) //! MiniSat Classic DPLL SAT Solver Backend diff --git a/src/rust/provers/minizinc.rs b/src/rust/provers/minizinc.rs index 8ae0b3bc..3c056b43 100644 --- a/src/rust/provers/minizinc.rs +++ b/src/rust/provers/minizinc.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! MiniZinc constraint modelling backend #![allow(dead_code)] use super::{ProverBackend, ProverConfig, ProverKind}; diff --git a/src/rust/provers/minlog.rs b/src/rust/provers/minlog.rs index 897d9f6f..47321d2b 100644 --- a/src/rust/provers/minlog.rs +++ b/src/rust/provers/minlog.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Minlog minimal logic backend with program extraction #![allow(dead_code)] use super::{ProverBackend, ProverConfig, ProverKind}; diff --git a/src/rust/provers/mizar.rs b/src/rust/provers/mizar.rs index 9b00281f..c93cc9c7 100644 --- a/src/rust/provers/mizar.rs +++ b/src/rust/provers/mizar.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2025 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 #![allow(dead_code)] diff --git a/src/rust/provers/mizar_ar.rs b/src/rust/provers/mizar_ar.rs index 3736ad7a..66e9f20e 100644 --- a/src/rust/provers/mizar_ar.rs +++ b/src/rust/provers/mizar_ar.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) //! MizAR Backend diff --git a/src/rust/provers/mleancop.rs b/src/rust/provers/mleancop.rs index e2b9278e..26e344d5 100644 --- a/src/rust/provers/mleancop.rs +++ b/src/rust/provers/mleancop.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! MleanCoP backend — connection-method prover for classical //! first-order logic with equality. diff --git a/src/rust/provers/mod.rs b/src/rust/provers/mod.rs index d62dfcf7..32baaa5b 100644 --- a/src/rust/provers/mod.rs +++ b/src/rust/provers/mod.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2025 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 #![allow(dead_code)] diff --git a/src/rust/provers/nanocop.rs b/src/rust/provers/nanocop.rs index 93faac1e..d60bbdf4 100644 --- a/src/rust/provers/nanocop.rs +++ b/src/rust/provers/nanocop.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! nanoCoP backend — minimal-kernel connection-method prover for //! classical first-order logic. diff --git a/src/rust/provers/naproche.rs b/src/rust/provers/naproche.rs index 108c1090..21fdc542 100644 --- a/src/rust/provers/naproche.rs +++ b/src/rust/provers/naproche.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) // //! Naproche — controlled natural-language (ForTheL) proof checker. diff --git a/src/rust/provers/nitpick.rs b/src/rust/provers/nitpick.rs index 68de66ae..736d6b29 100644 --- a/src/rust/provers/nitpick.rs +++ b/src/rust/provers/nitpick.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) // //! Nitpick — Isabelle-integrated counter-example finder. diff --git a/src/rust/provers/nunchaku.rs b/src/rust/provers/nunchaku.rs index d2fc6109..019cd752 100644 --- a/src/rust/provers/nunchaku.rs +++ b/src/rust/provers/nunchaku.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) // //! Nunchaku — model / counter-example finder for higher-order logic. diff --git a/src/rust/provers/nuprl.rs b/src/rust/provers/nuprl.rs index c3d7e228..96a4e173 100644 --- a/src/rust/provers/nuprl.rs +++ b/src/rust/provers/nuprl.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Nuprl constructive type theory backend #![allow(dead_code)] use super::{ProverBackend, ProverConfig, ProverKind}; diff --git a/src/rust/provers/nusmv.rs b/src/rust/provers/nusmv.rs index 82ff39b5..57f4eacb 100644 --- a/src/rust/provers/nusmv.rs +++ b/src/rust/provers/nusmv.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) //! NuSMV / nuXmv Symbolic Model Checker Backend diff --git a/src/rust/provers/opensmt.rs b/src/rust/provers/opensmt.rs index b944f435..d1b44cd0 100644 --- a/src/rust/provers/opensmt.rs +++ b/src/rust/provers/opensmt.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) //! OpenSMT Backend diff --git a/src/rust/provers/ortools.rs b/src/rust/provers/ortools.rs index bb3f8055..365ccc85 100644 --- a/src/rust/provers/ortools.rs +++ b/src/rust/provers/ortools.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! OR-Tools constraint and optimization solver backend #![allow(dead_code)] use super::{ProverBackend, ProverConfig, ProverKind}; diff --git a/src/rust/provers/outcome.rs b/src/rust/provers/outcome.rs index cd1d9969..11c1bbde 100644 --- a/src/rust/provers/outcome.rs +++ b/src/rust/provers/outcome.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2025 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Prover outcome taxonomy. //! diff --git a/src/rust/provers/princess.rs b/src/rust/provers/princess.rs index f0a57116..ad4e9915 100644 --- a/src/rust/provers/princess.rs +++ b/src/rust/provers/princess.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Princess ATP backend //! diff --git a/src/rust/provers/prism.rs b/src/rust/provers/prism.rs index 98a7bd2c..5bfa3a9f 100644 --- a/src/rust/provers/prism.rs +++ b/src/rust/provers/prism.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) //! PRISM Probabilistic Model Checker Backend diff --git a/src/rust/provers/prob.rs b/src/rust/provers/prob.rs index 563946a8..64322036 100644 --- a/src/rust/provers/prob.rs +++ b/src/rust/provers/prob.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! ProB backend — animator and constraint-based model checker for B, //! Event-B, Z, TLA+, and Alloy. diff --git a/src/rust/provers/prover9.rs b/src/rust/provers/prover9.rs index 59d04ad6..961c5cbb 100644 --- a/src/rust/provers/prover9.rs +++ b/src/rust/provers/prover9.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) //! Prover9 Backend diff --git a/src/rust/provers/proverif.rs b/src/rust/provers/proverif.rs index d8e4343a..0ca2c9fa 100644 --- a/src/rust/provers/proverif.rs +++ b/src/rust/provers/proverif.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) //! ProVerif Security Protocol Verifier Backend diff --git a/src/rust/provers/pvs.rs b/src/rust/provers/pvs.rs index 6a8d8183..f0aeba81 100644 --- a/src/rust/provers/pvs.rs +++ b/src/rust/provers/pvs.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2025 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 #![allow(dead_code)] diff --git a/src/rust/provers/qepcad.rs b/src/rust/provers/qepcad.rs index 0e922406..0a759d8f 100644 --- a/src/rust/provers/qepcad.rs +++ b/src/rust/provers/qepcad.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! QEPCAD-B backend — cylindrical algebraic decomposition over the //! reals. diff --git a/src/rust/provers/redlog.rs b/src/rust/provers/redlog.rs index 6bada2b2..15f38908 100644 --- a/src/rust/provers/redlog.rs +++ b/src/rust/provers/redlog.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Redlog backend — REDUCE-CAS frontend for real algebra //! diff --git a/src/rust/provers/rocq.rs b/src/rust/provers/rocq.rs index d0c791e8..24c053f2 100644 --- a/src/rust/provers/rocq.rs +++ b/src/rust/provers/rocq.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) //! Rocq Backend diff --git a/src/rust/provers/satallax.rs b/src/rust/provers/satallax.rs index 070269a9..b29387a4 100644 --- a/src/rust/provers/satallax.rs +++ b/src/rust/provers/satallax.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Satallax higher-order automated theorem prover backend diff --git a/src/rust/provers/scip.rs b/src/rust/provers/scip.rs index fc2048fb..c2507e7d 100644 --- a/src/rust/provers/scip.rs +++ b/src/rust/provers/scip.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! SCIP mixed-integer nonlinear programming backend #![allow(dead_code)] use super::{ProverBackend, ProverConfig, ProverKind}; diff --git a/src/rust/provers/seahorn.rs b/src/rust/provers/seahorn.rs index 63516a9c..9c993cd0 100644 --- a/src/rust/provers/seahorn.rs +++ b/src/rust/provers/seahorn.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) //! SeaHorn Verification Framework Backend diff --git a/src/rust/provers/smtrat.rs b/src/rust/provers/smtrat.rs index 841d06c0..1b79556f 100644 --- a/src/rust/provers/smtrat.rs +++ b/src/rust/provers/smtrat.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) //! SMT-RAT Backend diff --git a/src/rust/provers/spass.rs b/src/rust/provers/spass.rs index b2666800..04024def 100644 --- a/src/rust/provers/spass.rs +++ b/src/rust/provers/spass.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! SPASS backend //! diff --git a/src/rust/provers/spin_checker.rs b/src/rust/provers/spin_checker.rs index d37a0613..7636cb7b 100644 --- a/src/rust/provers/spin_checker.rs +++ b/src/rust/provers/spin_checker.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) //! SPIN Model Checker Backend diff --git a/src/rust/provers/stainless.rs b/src/rust/provers/stainless.rs index 4f946734..8ef999ae 100644 --- a/src/rust/provers/stainless.rs +++ b/src/rust/provers/stainless.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Stainless (Scala / Inox) refinement-types verification backend. //! //! Stainless verifies Scala programs against refinement-type contracts: @@ -35,7 +35,7 @@ impl StainlessBackend { /// Generate a minimal Stainless-annotated Scala program for the goal. fn to_input_format(&self, state: &ProofState) -> Result { let mut s = String::from( - "// SPDX-License-Identifier: AGPL-3.0-or-later\n\ + "// SPDX-License-Identifier: MPL-2.0\n\ import stainless.lang._\n\ import stainless.annotation._\n\n\ object EchidnaGoal {\n", diff --git a/src/rust/provers/storm.rs b/src/rust/provers/storm.rs index 49a625f5..a3263849 100644 --- a/src/rust/provers/storm.rs +++ b/src/rust/provers/storm.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! STORM backend — high-performance probabilistic model checker. //! diff --git a/src/rust/provers/tamarin.rs b/src/rust/provers/tamarin.rs index 72aa1d87..afbcac76 100644 --- a/src/rust/provers/tamarin.rs +++ b/src/rust/provers/tamarin.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) //! Tamarin Security Protocol Prover Backend diff --git a/src/rust/provers/tlaps.rs b/src/rust/provers/tlaps.rs index 62c7604b..e5b0e990 100644 --- a/src/rust/provers/tlaps.rs +++ b/src/rust/provers/tlaps.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! TLAPS (TLA+ Proof System) backend for distributed system verification #![allow(dead_code)] use super::{ProverBackend, ProverConfig, ProverKind}; diff --git a/src/rust/provers/tlc.rs b/src/rust/provers/tlc.rs index 471d4f31..b46e4f58 100644 --- a/src/rust/provers/tlc.rs +++ b/src/rust/provers/tlc.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) //! TLC Model Checker Backend diff --git a/src/rust/provers/tptp_output.rs b/src/rust/provers/tptp_output.rs index c1fa9c2c..79843cfc 100644 --- a/src/rust/provers/tptp_output.rs +++ b/src/rust/provers/tptp_output.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Shared TPTP output parser for higher-order and first-order ATPs //! diff --git a/src/rust/provers/twee.rs b/src/rust/provers/twee.rs index ceb9677f..fd51f2d8 100644 --- a/src/rust/provers/twee.rs +++ b/src/rust/provers/twee.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Twee equational theorem prover backend //! diff --git a/src/rust/provers/twelf.rs b/src/rust/provers/twelf.rs index 49f1e2bf..e1ee4186 100644 --- a/src/rust/provers/twelf.rs +++ b/src/rust/provers/twelf.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Twelf logical framework (LF) backend for metatheory verification #![allow(dead_code)] use super::{ProverBackend, ProverConfig, ProverKind}; diff --git a/src/rust/provers/typed_wasm.rs b/src/rust/provers/typed_wasm.rs index 347e6712..9908fd3e 100644 --- a/src/rust/provers/typed_wasm.rs +++ b/src/rust/provers/typed_wasm.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) #![allow(dead_code)] diff --git a/src/rust/provers/uppaal.rs b/src/rust/provers/uppaal.rs index 762179b7..1e7c9823 100644 --- a/src/rust/provers/uppaal.rs +++ b/src/rust/provers/uppaal.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) //! UPPAAL Timed Automata Model Checker Backend diff --git a/src/rust/provers/uppaal_stratego.rs b/src/rust/provers/uppaal_stratego.rs index 9f5a2037..331b0602 100644 --- a/src/rust/provers/uppaal_stratego.rs +++ b/src/rust/provers/uppaal_stratego.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) //! UPPAAL Stratego Backend diff --git a/src/rust/provers/vampire.rs b/src/rust/provers/vampire.rs index ac008117..a424ff79 100644 --- a/src/rust/provers/vampire.rs +++ b/src/rust/provers/vampire.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Vampire ATP backend //! diff --git a/src/rust/provers/viper.rs b/src/rust/provers/viper.rs index 856b4976..dcc14180 100644 --- a/src/rust/provers/viper.rs +++ b/src/rust/provers/viper.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Viper verification infrastructure backend //! diff --git a/src/rust/provers/why3.rs b/src/rust/provers/why3.rs index 96b9cd8b..4e9b3a3f 100644 --- a/src/rust/provers/why3.rs +++ b/src/rust/provers/why3.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Why3 multi-prover orchestration backend #![allow(dead_code)] use super::{ProverBackend, ProverConfig, ProverKind}; diff --git a/src/rust/provers/z3.rs b/src/rust/provers/z3.rs index 32e36a1b..fae23f3f 100644 --- a/src/rust/provers/z3.rs +++ b/src/rust/provers/z3.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2025 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 #![allow(dead_code)] diff --git a/src/rust/provers/zipperposition.rs b/src/rust/provers/zipperposition.rs index 6e352478..3de342a8 100644 --- a/src/rust/provers/zipperposition.rs +++ b/src/rust/provers/zipperposition.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) //! Zipperposition Backend diff --git a/src/rust/repl/diagnostics.rs b/src/rust/repl/diagnostics.rs index 6cf8248d..1d881eab 100644 --- a/src/rust/repl/diagnostics.rs +++ b/src/rust/repl/diagnostics.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Interactive diagnostics REPL for echidna use std::io::{self, Write}; diff --git a/src/rust/repl/mod.rs b/src/rust/repl/mod.rs index 65960eeb..b8cc3e54 100644 --- a/src/rust/repl/mod.rs +++ b/src/rust/repl/mod.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // Interactive REPL for echidna pub mod diagnostics; diff --git a/src/rust/repl/proof.rs b/src/rust/repl/proof.rs index 3cc4d4f9..7b1f1b29 100644 --- a/src/rust/repl/proof.rs +++ b/src/rust/repl/proof.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2025 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Interactive REPL for theorem proving //! diff --git a/src/rust/server.rs b/src/rust/server.rs index 0dee6520..e55981a4 100644 --- a/src/rust/server.rs +++ b/src/rust/server.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2025 Jonathan D.A. Jewell -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! HTTP API server for ECHIDNA //! diff --git a/src/rust/suggest/extractor.rs b/src/rust/suggest/extractor.rs index 386bd611..95fcd7a1 100644 --- a/src/rust/suggest/extractor.rs +++ b/src/rust/suggest/extractor.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Per-prover lemma extractor. //! diff --git a/src/rust/suggest/mod.rs b/src/rust/suggest/mod.rs index 90e25046..936fd903 100644 --- a/src/rust/suggest/mod.rs +++ b/src/rust/suggest/mod.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! `echidna suggest` — mechanical tactic-variant finder. //! diff --git a/src/rust/suggest/report.rs b/src/rust/suggest/report.rs index 93b0f6f6..649ee642 100644 --- a/src/rust/suggest/report.rs +++ b/src/rust/suggest/report.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Result formatter for `echidna suggest`. //! diff --git a/src/rust/suggest/synonyms.rs b/src/rust/suggest/synonyms.rs index 63bc5038..6902809e 100644 --- a/src/rust/suggest/synonyms.rs +++ b/src/rust/suggest/synonyms.rs @@ -1,6 +1,6 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Synonym table loader — reads `data/synonyms/.toml` and indexes //! it for fast lookup of alternatives given any name in the table. diff --git a/src/rust/suggest/tester.rs b/src/rust/suggest/tester.rs index b39118c2..670e9e91 100644 --- a/src/rust/suggest/tester.rs +++ b/src/rust/suggest/tester.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Variant testing harness. //! diff --git a/src/rust/suggest/variant.rs b/src/rust/suggest/variant.rs index 838a349e..98197b10 100644 --- a/src/rust/suggest/variant.rs +++ b/src/rust/suggest/variant.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 ECHIDNA Project Team -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Substitution generator. //! diff --git a/src/rust/vcl_ut.rs b/src/rust/vcl_ut.rs index 3a0f101f..30d15eff 100644 --- a/src/rust/vcl_ut.rs +++ b/src/rust/vcl_ut.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath) -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! VCL-UT: Cross-Prover Query Language for ECHIDNA //! diff --git a/src/rust/verification/axiom_tracker.rs b/src/rust/verification/axiom_tracker.rs index 60272ea7..5807d877 100644 --- a/src/rust/verification/axiom_tracker.rs +++ b/src/rust/verification/axiom_tracker.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Axiom usage tracking and enforcement //! diff --git a/src/rust/verification/bayesian_arbiter.rs b/src/rust/verification/bayesian_arbiter.rs index 36717f7a..452a469f 100644 --- a/src/rust/verification/bayesian_arbiter.rs +++ b/src/rust/verification/bayesian_arbiter.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell //! Bayesian arbiter for prover-evidence fusion. diff --git a/src/rust/verification/certificates.rs b/src/rust/verification/certificates.rs index 43500c83..5cfa47c4 100644 --- a/src/rust/verification/certificates.rs +++ b/src/rust/verification/certificates.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Proof certificate checking //! diff --git a/src/rust/verification/confidence.rs b/src/rust/verification/confidence.rs index 22106e88..60c3d80f 100644 --- a/src/rust/verification/confidence.rs +++ b/src/rust/verification/confidence.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! 5-Level Trust Hierarchy for proof confidence scoring //! diff --git a/src/rust/verification/dempster_shafer.rs b/src/rust/verification/dempster_shafer.rs index f55952cf..1f6683c0 100644 --- a/src/rust/verification/dempster_shafer.rs +++ b/src/rust/verification/dempster_shafer.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell //! Dempster-Shafer evidence combination for prover arbitration. diff --git a/src/rust/verification/mod.rs b/src/rust/verification/mod.rs index 06202142..c7ef3bdb 100644 --- a/src/rust/verification/mod.rs +++ b/src/rust/verification/mod.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell //! Verification subsystem for ECHIDNA diff --git a/src/rust/verification/mutation.rs b/src/rust/verification/mutation.rs index fc627acf..33d4d8d4 100644 --- a/src/rust/verification/mutation.rs +++ b/src/rust/verification/mutation.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Mutation testing for specifications //! diff --git a/src/rust/verification/pareto.rs b/src/rust/verification/pareto.rs index 4686efab..7367b118 100644 --- a/src/rust/verification/pareto.rs +++ b/src/rust/verification/pareto.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Pareto optimality for proof search //! diff --git a/src/rust/verification/pareto_arbiter.rs b/src/rust/verification/pareto_arbiter.rs index f79fc27c..7f1ac80a 100644 --- a/src/rust/verification/pareto_arbiter.rs +++ b/src/rust/verification/pareto_arbiter.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell //! Pareto-frontier arbiter for proof outcomes. diff --git a/src/rust/verification/portfolio.rs b/src/rust/verification/portfolio.rs index e2074ff0..a25a1b50 100644 --- a/src/rust/verification/portfolio.rs +++ b/src/rust/verification/portfolio.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! SMT Solver Cross-Checking (Portfolio Solving) //! diff --git a/src/rust/verification/proof.rs b/src/rust/verification/proof.rs index 215ed0fd..bc901918 100644 --- a/src/rust/verification/proof.rs +++ b/src/rust/verification/proof.rs @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath) -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 #![allow(clippy::doc_overindented_list_items)] diff --git a/src/rust/verification/result_arbiter.rs b/src/rust/verification/result_arbiter.rs index cfa5fbcb..6a442418 100644 --- a/src/rust/verification/result_arbiter.rs +++ b/src/rust/verification/result_arbiter.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell //! Unified result arbitration — the single entry point that turns a set diff --git a/src/rust/verification/statistics.rs b/src/rust/verification/statistics.rs index 8ed59610..3cc418dc 100644 --- a/src/rust/verification/statistics.rs +++ b/src/rust/verification/statistics.rs @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! Statistical Confidence Tracking for Proof Search //! diff --git a/src/rust/verisim_bridge.rs b/src/rust/verisim_bridge.rs index 4cee75ea..7bc8ab48 100644 --- a/src/rust/verisim_bridge.rs +++ b/src/rust/verisim_bridge.rs @@ -1,6 +1,6 @@ // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath) // SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MPL-2.0 //! VeriSimDB Bridge — Maps ECHIDNA proof state to VeriSimDB's 8-modality octad. //! diff --git a/src/ui/public/prove.html b/src/ui/public/prove.html index 9b1e894e..2c2a11d4 100644 --- a/src/ui/public/prove.html +++ b/src/ui/public/prove.html @@ -1,6 +1,6 @@