{"id":25882074,"url":"https://github.com/groupoid/jack","last_synced_at":"2025-10-10T04:13:42.509Z","repository":{"id":279511704,"uuid":"939049242","full_name":"groupoid/jack","owner":"groupoid","description":"🧊 Теорія типів Джека Морави","archived":false,"fork":false,"pushed_at":"2025-02-26T02:14:20.000Z","size":29,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-26T02:19:38.468Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://jack.groupoid.space/","language":"Agda","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/groupoid.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-25T22:59:01.000Z","updated_at":"2025-02-26T02:15:35.000Z","dependencies_parsed_at":"2025-02-26T02:19:38.606Z","dependency_job_id":null,"html_url":"https://github.com/groupoid/jack","commit_stats":null,"previous_names":["groupoid/heinz","groupoid/jean-pierre"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/groupoid%2Fjack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/groupoid%2Fjack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/groupoid%2Fjack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/groupoid%2Fjack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/groupoid","download_url":"https://codeload.github.com/groupoid/jack/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241495581,"owners_count":19972125,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-03-02T15:57:07.867Z","updated_at":"2025-10-10T04:13:42.491Z","avatar_url":"https://github.com/groupoid.png","language":"Agda","funding_links":[],"categories":[],"sub_categories":[],"readme":"# JMTT: Jack Morava Type Theory\n\n\u003cimg src=\"img/Jack_and_Ellen_Yoho_BC_1971.jpg\" height=600/\u003e\n\nEncompasses unstable homotopy, stable homotopy (e.g., π₀^S(S⁰) = ℤ),\nand chromatic phenomena (e.g., H^*(RP^2), spectral sequences),\ninspired by Morava’s chromatic vision.\n\nTo enable cohomology computations in Hopf Fibrations Type Theory (HFTT) using\nspectra like Hℤ or Hℚ, we need to refine and extend the spectrum-related rules.\nCohomology in chromatic homotopy theory often involves spectra (e.g., Eilenberg-MacLane\nspectra Hℤ) and their stable homotopy groups, which represent cohomology groups when\napplied to other spectra or spaces. Our current HTT setup has spectra, stable homotopy\ngroups (πₙ^S), and K(G, n) spaces trough n-Truncations and Groups, but lacks explicit\nrules for cohomology operations—pairings, cochain complexes, or spectrum maps—that\nmake computations practical. Jack Morava Type Theory adds these rules, focusing on cohomology\nas H^n(X; G) = [X, K(G, n)] or, in the stable setting, π₋ₙ^S(HG ∧ X).\n\n```\n\u003e H^*(RP^2; ℤ/2ℤ) = ℤ/2ℤ[α]/(α³)\n```\n\n## Syntax\n\n* Universe: Uⁿ.\n* Types: Fibⁿ, Susp(A), Truncⁿ(A), ℕ, ℕ∞, Π(x:A).B, Σ(x:A).B, Id_A(u, v), Spec, πₙ^S(A), S⁰[p], Group, A ∧ B, [A, B], Hⁿ(X; G), G ⊗ H, SS(E, r).\n* Derivables: Sⁿ, πₙ(Sᵐ), K(G, n), Cohomology Rings, Chromatic Towers.\n* Terms: t, u, v ::= x, 𝟎, suc(t), fin(t), inf, hopfⁿ, susp(t), truncⁿ(t), λx.t, t u, (t, u), fst(t), snd(t), p, refl, spec({Aₙ},{σₙ}), stable(t), loc_p(t), grp(G, e, op, inv), smash(t, u), map(t), tensor(g, h), t : SS(E, r)^{p,q}.\n* Contexts: Γ ::= ∅, Γ + x:A.\n\n# HFTT: Hopf Fibrations Type Theory\n\nA Minimal Framework for Homotopy Groups of Spheres.\n\nWe introduce Hopf Fibrations Type Theory (HFTT), a novel type system designed\nto efficiently represent and compute homotopy groups of spheres, addressing\nthe computational challenges of Cubical Homotopy Type Theory (CCHM). Built\non a minimal set of primitives—Hopf fibrations (ℝ, ℂ, ℍ, 𝕆), suspension,\nand n-truncation — HFTT leverages fibrations to encode\ntopological structure directly. Alongside standard types (Π, Σ, Id),\nHFTT includes natural numbers (ℕ) and an extended order type (ℕ∞) to\naccess group properties. Key innovations include eliminators for\nsuspensions and truncations, enabling streamlined reductions, and\na derivable order function that extracts the order of elements in πₙ(Sᵐ),\nsupporting both finite (e.g., π₄(S³) ≅ ℤ/2ℤ) and infinite (e.g.,\nπ₃(S²) ≅ ℤ) groups. Computational rules ensure efficient\nnormalization, while the fibrations provide a basis for\nhomotopy groups, potentially simplifying proofs of properties\nlike π₄(S³). This article outlines HFTT’s syntax, rules, and its\npromise as a compact, expressive framework for homotopy type theory.\n\n```\n\u003e π₃(S²) = ℤ\n```\n\n## Syntax\n\n* Universe: Uⁿ.\n* Types: HopfFibⁿ (n=1,2,4,8), Susp(A), Truncⁿ(A), ℕ, ℕ∞, Π(x:A).B, Σ(x:A).B, Id_A(u, v).\n* Derivables: Sⁿ, πₙ(Sᵐ), order function.\n* Terms: t, u, v ::= x, 𝟎, suc(t), fin(t), inf, hopfⁿ, susp(t), truncⁿ(t), λx.t, t u, (t, u), fst(t), snd(t), p, refl.\n* Contexts: Γ ::= ∅ `|` Γ, x:A.\n\n# Inference Rules\n\n## Formations\n\n```\nΓ ⊢ Sⁿ : U := ℕ-iter U 𝟐 Susp\nΓ ⊢ HopfFibⁿ : U (n ∈ {1, 2, 4, 8})\nΓ ⊢ Susp(A) : U\nΓ ⊢ Truncⁿ(A) : U\nΓ ⊢ ℕ : U\nΓ ⊢ ℕ∞ : U\nΓ ⊢ Π(x:A).B : U\nΓ ⊢ Σ(x:A).B : U\nΓ ⊢ Id_A(u, v) : U\n\nΓ ⊢ Spec : U\nΓ ⊢ πₙ^S(A) : U\nΓ ⊢ A ∧ B : Spec\nΓ ⊢ [A, B] : Spec\nΓ ⊢ Hⁿ(X; G) : U\nΓ ⊢ G ⊗ H : Group\nΓ ⊢ SS(E, r) : U\nΓ ⊢ Group : U\nΓ ⊢ S⁰[p] : Spec\n```\n\n## Introductions\n\n```\nℕ: 𝟎 : ℕ, suc : ℕ → ℕ\nℕ∞: fin : ℕ → ℕ∞, inf : ℕ∞\nSusp: susp(t) : Susp(A) if t : A\nTruncⁿ: truncⁿ(t) : Truncⁿ(A) if t : A\nΠ: λx.t : Π(x:A).B if Γ, x:A ⊢ t : B\nΣ: (t, u) : Σ(x:A).B if t : A, u : B[t/x]\nId: refl : Id_A(u, u)\nΓ ⊢ t : HopfFibⁿ  ⇒  t ≡ hopfⁿ\nfiber : HopfFibⁿ → U\nfiber(HopfFib¹) = S⁰\nfiber(HopfFib²) = S¹\nfiber(HopfFib⁴) = S³\nfiber(HopfFib⁸) = S⁷\ntotal : HopfFibⁿ → U\ntotal(HopfFib¹) = S¹\ntotal(HopfFib²) = S³\ntotal(HopfFib⁴) = S⁷\ntotal(HopfFib⁸) = S¹⁵\nfibration : Π(f:HopfFibⁿ).fiber(f) → total(f)\nlift : Π(a:Sᵐ).Π(b:Sᵐ).Id_Fibⁿ(hopfⁿ, hopfⁿ) → Id_Sᵐ(a, b)\ninv : Id_A(u, v) → Id_A(v, u)\nproj : HopfFibⁿ → Sᵐ, (m = n/2, e.g., HopfFib² → S²)\nSpec : U, Aₙ : ℕ → U, σₙ : Aₙ → Susp(Aₙ₊₁) ⊢ spec({Aₙ}, {σₙ}) : Spec\nS⁰ : Spec, S⁰ := spec({Sⁿ}, {σₙ}) ⊢ σₙ : Sⁿ → Susp(Sⁿ₊₁) ≡ Sⁿ⁺¹\nΓ ⊢ A : Spec, a : A₀ ⊢ πₙ^S(A) : U := colimₖ πₙ₊ₖ(Aₖ)\nstable(t) : πₙ^S(A)\nA : Spec, p : ℕ (prime), S⁰[p] : Spec ⊢ loc_p(t) : S⁰[p]\ngrp(G, e, op, inv) : Group\nsmash(t, u) : ∧\nt(E,r,p,q) : SS\nmap(t) : [,]\ntensor(g, h) : G ⊗ H \n```\n\n## Eliminators\n\n```\nΓ ⊢ C : ℕ → U, z : C(𝟎), s : Π(k:ℕ).C(k) → C(suc(k)) ⊢ rec_ℕ(C, z, s, t) : C(t) (t : ℕ)\nΓ ⊢ C : ℕ∞ → U, f : Π(k:ℕ).C(fin(k)), i : C(inf) ⊢ case_ℕ∞(C, f, i, t) : C(t) (t : ℕ∞)\nΓ ⊢ A : U, t : Susp(A), C : Susp(A) → U, s : Π(a:A).C(susp(a)) ⊢ elim_Susp(C, s, t) : C(t)\nΓ ⊢ A : U, t : Truncⁿ(A), C : Truncⁿ(A) → U, trunc : Π(a:A).C(truncⁿ(a)) ⊢ elim_Truncⁿ(C, trunc, t) : C(t)\n\nΓ ⊢ t : A ∧ B, C : (A ∧ B) → U, s : Π(a:A).Π(b:B).C(smash(a, b)) Γ ⊢ elim_Smash(C, s, t) : C(t)\nΓ ⊢ t : [A, B], C : [A, B] → U, m : Π(f:A→B).C(map(f)) Γ ⊢ elim_Map(C, m, t) : C(t)\nΓ ⊢ E : Spec, C : Spec → U, : Π({Aₙ}:ℕ→U).Π({σₙ}:Π(n:ℕ).Aₙ→Susp(Aₙ₊₁)).C(spec({Aₙ},{σₙ})) ⊢ elim_Spec(C, s, E) : C(E)\nΓ ⊢ A : Spec, t : πₙ^S(A), C : πₙ^S(A) → U, s : Π(k:ℕ).Π(a:πₙ₊ₖ(Aₖ)).C(stable(a)) ⊢ elim_πₙ^S(C, s, t) : C(t)\n\norder : Π(n:ℕ).Π(m:ℕ).Π(x:πₙ(Sᵐ)).ℕ∞\norder(n)(m)(x) = rec_ℕ(k ↦ ℕ∞, inf, λk.prev.case(test(k),\n    λeq.fin(suc(k)), λ_.prev), suc(k_max))\n    test(n)(m)(x)(k) = trunc⁰(pow(n)(m)(x)(k) = refl)\n```\n\n## Computations\n\n```\nrec_ℕ(C, z, s, 𝟎) ≡ z\nrec_ℕ(C, z, s, suc(k)) ≡ s(k, rec_ℕ(C, z, s, k))\ncase_ℕ∞(C, f, i, fin(k)) ≡ f(k)\ncase_ℕ∞(C, f, i, inf) ≡ i\nelim_Susp(C, s, susp(a)) ≡ s(a)\nSusp(Sⁿ) ≡ Sⁿ⁺¹\nsusp(HopfFibⁿ) ↦ HopfFibⁿ⁺¹, (n ∈ {1, 2, 4}, n+1 ≤ 8)\nsusp(truncⁿ(a)) ↦ truncⁿ⁺¹(susp(a))\nSusp(HopfFib⁸) ≡ Susp(total(HopfFib⁸))    (fallback to S¹⁶)\nSusp(Truncⁿ(A)) ↦ Truncⁿ⁺¹(Susp(A))    (term-level coherence)\nelim_Truncⁿ(C, trunc, truncⁿ(a)) ≡ trunc(a)\nπₖ(Truncⁿ(A)) ≡ 𝟎    (k \u003e n)\nHopfFib¹ ≡ S⁰ → S¹\nHopfFib² ≡ S¹ → S³ → S²\nHopfFib⁴ ≡ S³ → S⁷ → S⁴\nHopfFib⁸ ≡ S⁷ → S¹⁵ → S⁸\nfibration(HopfFibⁿ) : fiber(HopfFibⁿ) → total(HopfFibⁿ)\nproj(fibration(HopfFibⁿ)(x)) ≡ baseᵐ\nlift(baseᵐ, baseᵐ, refl) ≡ refl\nlift(a, b, p) · q ≡ lift(a, c, p · q)    (path composition)\nπₙ(Sᵐ) ≅ Id_total(HopfFibᵏ)(fibration(hopfᵏ)(x), fibration(hopfᵏ)(y))    (adjusted definition)\n(λx.t) u ≡ t[u/x]\nfst(t, u) ≡ t\nsnd(t, u) ≡ u\nπₙ(Sᵐ) ≅ Id_Suspⁿ⁻ᵐ(HopfFibᵏ)(hopfᵏ, hopfᵏ)    (m ≤ k, k ∈ {1, 2, 4, 8})\npow(n)(m)(x)(k) = rec_ℕ(k’ ↦ πₙ(Sᵐ), refl, λk’.p.p · x, k)\n(p · q) · r ≡ p · (q · r), p · refl ≡ p, refl · p ≡ p, p · inv(p) ≡ refl\nproj(hopfⁿ) ≡ baseᵐ    (fixed point in Sᵐ)\nlift(a, b, p) · q ≡ lift(a, c, p · q)    (path composition)\n\nπₙ^S(S⁰) ≡ colimₖ πₙ₊ₖ(Sᵏ)\nstable(aₖ) ↦ colimₖ(aₖ)    (aₖ : πₙ₊ₖ(Aₖ))\nelim_Spec(C, s, spec({Aₙ},{σₙ})) ≡ s({Aₙ},{σₙ})\ncup(map(f), map(g)) ↦ map(λx.kgn(tensor(f(x), g(x)), n+m))\ncup(t, u) associative, graded-commutative\ndiffᵣ(diffᵣ(t)) ≡ 0    (d² = 0)\nSS(E, r+1) ≅ ker(diffᵣ) / im(diffᵣ)    (next page)\ndiffᵣ(diffᵣ(t)) ≡ 0, SS(E, r+1) ≅ ker(diffᵣ) / im(diffᵣ)\nHⁿ(X; G) ≅ π₀^S([X, K(G, n)]), Hⁿ(X; G) ≅ π₋ₙ^S(HG ∧ X)\nHⁿ(X; G) ≅ π₀^S([X, K(G, n)]), Hⁿ(X; G) ≅ π₋ₙ^S(HG ∧ X)    (stable equivalence)\nHG ∧ S⁰ ≡ HG\nelim_Map(C, m, map(f)) ≡ m(f), πₙ^S([X, Y]) ≅ [Suspⁿ(X), Y]₀   (adjointness)\n[spec({Aₙ},{σₙ}), spec({Bₙ},{τₙ})]ₖ ≡ [Aₖ, Bₖ]    (component-wise)\nelim_Smash(C, s, smash(a, b)) ≡ s(a, b), S⁰ ∧ X ≡ X\n(spec({Aₙ},{σₙ})) ∧ (spec({Bₙ},{τₙ})) ≡ spec({Aₙ ∧ Bₙ},{σₙ ∧ τₙ})\nπₙ(K(G, n)) ≅ G, susp(kgn(g, n)) ↦ kgn(g, n+1)\nloc_p(spec({Aₙ},{σₙ})) ↦ spec({Aₙ[p]},{σₙ[p]})\nπₙ^S(A) ≡ colimₖ πₙ₊ₖ(Aₖ), stable(aₖ) ↦ colimₖ(aₖ)\nπₙ^S(S⁰[p]) ≡ πₙ^S(S⁰) ⊗ ℤ_{(p)}    (p-local integers)\nelim_Spec(C, s, spec({Aₙ},{σₙ})) ≡ s({Aₙ},{σₙ})\nπₙ^S(A ∧ B) ≅ colimₖ πₙ₊ₖ(Aₖ ∧ Bₖ) - stable Homotopy Refinement\nΓ ⊢ finite : Π(n:ℕ).Π(m:ℕ).Trunc⁰(πₙ(Sᵐ)) → U, finite(n)(m)(trunc⁰(x)) = Σ(k:ℕ).Id_πₙ(Sᵐ)(pow(n)(m)(x)(k), refl)\n```\n\n## Coherences\n\n```\n(p · q) · r ≡ p · (q · r)\np · refl ≡ p    refl · p ≡ p\np · inv(p) ≡ refl    (inv(p) : Id_A(v, u) if p : Id_A(u, v))\nΓ ⊢ t : Trunc⁰(A), u : Trunc⁰(A) ⊢ t ≡ u : Trunc⁰(A) or  Γ ⊢ t ≠ u : Trunc⁰(A)\nΓ ⊢ t : HopfFibⁿ  ⇒  t ≡ hopfⁿ\nΓ ⊢ t : Truncⁿ(A)    Γ ⊢ u : Truncⁿ(A)    πₖ(t) ≡ πₖ(u) (k ≤ n)  ⇒  t ≡ u\n```\n\n## Publications\n\n* \u003ca href=\"https://tonpa.guru/stream/2018/2018-06-29 Хроматична Теорія Гомотопій.htm\"\u003e2018-06-29 Хроматична Теорія Гомотопій\u003c/a\u003e\n* \u003ca href=\"https://tonpa.guru/stream/2020/2020-05-03 Модельні категорії.htm\"\u003e2020-05-03 Модельні категорії\u003c/a\u003e\n\n## Copyright\n\nNamdak Tonpa\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgroupoid%2Fjack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgroupoid%2Fjack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgroupoid%2Fjack/lists"}