{"id":26630942,"url":"https://github.com/groupoid/laurent","last_synced_at":"2025-04-10T16:51:14.118Z","repository":{"id":282773628,"uuid":"949601568","full_name":"groupoid/laurent","owner":"groupoid","description":"🧊 Теорія типів для теорем математичного і функціонального аналізів","archived":false,"fork":false,"pushed_at":"2025-03-27T21:05:48.000Z","size":5250,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-03T02:24:15.519Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://laurent.groupoid.space/","language":"OCaml","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-03-16T20:06:46.000Z","updated_at":"2025-03-27T21:05:51.000Z","dependencies_parsed_at":"2025-03-24T01:22:11.048Z","dependency_job_id":null,"html_url":"https://github.com/groupoid/laurent","commit_stats":null,"previous_names":["groupoid/laurent"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/groupoid%2Flaurent","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/groupoid%2Flaurent/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/groupoid%2Flaurent/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/groupoid%2Flaurent/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/groupoid","download_url":"https://codeload.github.com/groupoid/laurent/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248255943,"owners_count":21073423,"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-24T14:36:30.355Z","updated_at":"2025-04-10T16:51:14.108Z","avatar_url":"https://github.com/groupoid.png","language":"OCaml","funding_links":[],"categories":[],"sub_categories":[],"readme":"Laurent Schwartz: Analytical Type Theory\n========================================\n\n[![Actions](https://github.com/groupoid/laurent/workflows/opam/badge.svg)](https://github.com/groupoid/laurent/actions)\n\nType Theory for mechanical formalization of Théorie des\nDistributions and Analyse Mathematique by Laurent Schwartz and Foundation of Constructive Analysis by Errett Bishop.\n\n\u003cimg src=\"https://laurent.groupoid.space/img/laurent.png\" widht=600\u003e\n\nType systems in mathematics and computer science provide\na structured way to formalize proofs and computations.\nIn this article, we present a minimal type system,\ndesigned to encode classical and modern analysis with explicit core constructors.\n\nWe omit identity types `Id`, `idp`, `J` (HoTT, MLTT-80, MLTT-75) to\nkeep the system lean with Pi and Set truncated Sigma relying instead on `Prop` predicates.\nAlso we have explicitly built in Set theory with Open Sets and Topology to have more classical core.\n\nWe’ll explore this system through examples, starting with:\n1) Classical Riemann sums, advancing to built-in\n2) Lebesgue integration and\n3) Custom Measures,\n4) Bishop’s constructive analysis,\n5) L₂ spaces, and culminating in\n6) Schwartz’s theory of distributions.\n\nUsage\n-----\n\n```\n$ ./laurent\nTEST OK\u003e integral_sig : Universe 0\nTEST OK\u003e integral_term : Forall (f, Forall (x, ℝ, ℝ), Forall (a, ℝ, Forall (b, ℝ, ℝ)))\nTEST OK\u003e sequence_a : Forall (n, ℕ, ℝ)\nTEST OK\u003e limit_a : Prop\nTEST OK\u003e inf_a : ℝ\nTEST OK\u003e sup_a : ℝ\nTEST OK\u003e set_a : Set (ℝ)\nTEST OK\u003e universal set : Set (Prop)\nTEST OK\u003e e : ℝ\nTEST OK\u003e l_2 space : Forall (f, Forall (x, ℝ, ℝ), Prop)\nTEST OK\u003e sigma_algebra : Prop\nTEST OK\u003e measurable : Prop\nAll tests passed!\n```\n\nSyntax\n------\n\n```\ntype exp =                         (* MLTT-72 Vibe Check                     *)\n  | Prop                           (* Prop Universe, Prop : Universe 0       *)\n  | Universe of int                (* Universe 0 : Universe 1, no others     *)\n  | Var of string                  (* Variable definition                    *)\n  | Forall of string * exp * exp   (* Universal quantification:   ∀ (x:A), B *)\n  | Lam of string * exp * exp      (* ∀-intro, Implication                   *)\n  | App of exp * exp               (* ∀-elim, Modus Ponens                   *)\n  | Exists of string * exp * exp   (* Existential quantification: ∃ (x:A), B *)\n  | Pair of exp * exp              (* ∃-intro, existence consists of:        *)\n  | Fst of exp                     (* ∃-elim-1, witness                      *)\n  | Snd of exp                     (* ∃-elim-2, proof                        *)\n  | NatToReal of exp               (* Carriers:                              *)\n  | Bool                           (*   𝟚   *)\n  | Nat                            (*   ℕ   *)\n  | Integer                        (*   ℤ   *)\n  | Rational                       (*   ℚ   *)\n  | Real                           (*   ℝ   *)\n  | Complex                        (*   ℂ   *)\n  | Quaternionic                   (*   ℍ   *)\n  | Octanionic                     (*   𝕆   *)\n  | Vec of int * exp * exp * exp   (*   𝕍   *)\n  | Zero                           (*  0.0  *)\n  | One                            (*  1.0  *)\n  | Infinity                       (*   ∞   *)\n  | S of exp                       (*   1+  *)\n  | Z                              (*   0   *)\n  | If of exp * exp * exp                   (* 𝟚-Eliminator : 𝟚 -\u003e ℝ         *)\n  | RealIneq of real_ineq * exp * exp       (* Inequalities a \u003c b, etc.      *)\n  | RealOps of real_op * exp * exp          (* Real +, -, *, etc.            *)\n  | ComplexOps of complex_op * exp * exp    (* Complex +, -, *, etc.         *)\n  | Closure of exp\n  | Set of exp              (* Term level: { x : A | P } Set Lam, Type Level: Set Real *)\n  | UnionSet of exp * exp   (* A ∪ B *)\n  | Complement of exp       (* ℝ \\ A *)\n  | Intersect of exp * exp  (* a ∩ b *)\n  | Power of exp            (* a ^ b *)\n  | And of exp * exp        (* a ∩ b *)\n  | Ordinal\n  | Mu of exp * exp         (* Measure type *)\n  | Measure of exp * exp    (* Measure expression *)\n  | Seq of exp              (* a_n : N -\u003e R, Seq Lam *)\n  | Sum of exp              (* ∑ a_n, Sum Lam *)\n  | Union of exp            (* ⋃ A_n, Union Lam  *)\n  | Limit of limit          (* Limit(f,x,l,p) : Real, f: sequence, x: bound, l: limit, p: proof *)\n  | Sup of exp              (* sup a_n : R, Sup Seq (N -\u003e R) *)\n  | Inf of exp              (* inf a_n : R, Inf Seq (N -\u003e R) *)\n  | Lebesgue of lebesgue    (* ∫ f dμ over set *)\n\nand real_op = RPlus | RMinus | RMult | RDiv\nand real_ineq = RLt | RGt | RLte | RGte\nand complex_op = CPlus | CMinus | CMult | CDiv | CExp\n```\n\n## Analyse Mathematique\n\n### Taylor’s Theorem with Remainder\n\n* Volume 1: Calculus\n* Chapter I: Differential Calculus\n\nIf f:R→R is n-times differentiable at a, then f(x) = \\Sigma_{k=0}^{n-1}\\frac{f^(k)(a)}{k!}(x-a)^k + 𝑅_𝑛(𝑥), where 𝑅_𝑛(𝑥)=𝑜((𝑥−𝑎)^{𝑛−1}) as 𝑥→𝑎.\n\n```\nlet taylor_theorem = Pi (Real, (\"a\", Pi (Nat, (\"n\",\n  Pi (Pi (Real, (\"x\", Real)), (\"f\",\n    And (\n      Pi (Nat, (\"k\", If (RealIneq (RLte, Var \"k\", Var \"n\"),\n              diff_k (Var \"f\", Var \"a\", Var \"k\"), Bool))),\n      Id (Real,\n        App (Var \"f\", Var \"x\"),\n        RealOps (RPlus,\n          App (sum (Nat, (\"k\",\n                RealOps (RDiv, App (diff_k (Var \"f\", Var \"a\", Var \"k\")), fact (Var \"k\")),\n                RealOps (RMul, Var \"k\",\n                RealOps (RMinus, Var \"x\", Var \"a\")))), zero,\n                RealOps (RMinus, Var \"n\", one)),\n          remainder (Var \"f\", Var \"x\", Var \"a\", Var \"n\")))\n      ))\n    ))\n  ))\n```\n\n```\nlet proof_taylor =\n   Lam (Real, (\"a\", Lam (Nat, (\"n\", Lam (Pi (Real, (\"x\", Real)), (\"f\",\n    Pair (\"diff_cond\", Pi (Nat, (\"k\", If (RealIneq (RLte, Var \"k\", Var \"n\"),\n            Refl (diff_k (Var \"f\", Var \"a\", Var \"k\")), Bool))),\n    Refl (Id (Real,\n      App (Var \"f\", Var \"x\"),\n      RealOps (RPlus,\n        App (sum (Nat, (\"k\", RealOps (RDiv, App (diff_k (Var \"f\", Var \"a\", Var \"k\")),\n               fact (Var \"k\")),\n        RealOps (RMul, Var \"k\", RealOps (RMinus, Var \"x\", Var \"a\")))), \n                    zero, RealOps (RMinus, Var \"n\", one)),\n        remainder (Var \"f\", Var \"x\", Var \"a\", Var \"n\"))))\n    )\n  ))))))\n```\n\n### Fundamental Theorem of Calculus\n\n* Volume 1: Calculus\n* Chapter II: Integral Calculus\n\nIf 𝑓 is continuous on [𝑎,𝑏], then 𝐹(𝑥)=∫_𝑎^𝑥{𝑓(𝑡)}𝑑𝑡 is differentiable, and 𝐹′(𝑥)=𝑓(𝑥).\n\n```\nlet ftc = Pi (Real, (\"a\", Pi (Real, (\"b\",\n  Pi (Pi (Real, (\"x\", Real)), (\"f\",\n    And (\n      continuous (Set (Lam (Real, (\"x\",\n          And (RealIneq (RGte, Var \"x\", Var \"a\"),\n               RealIneq (RLte, Var \"x\", Var \"b\"))))), Var \"f\"),\n      Id (Real,\n        diff (Lam (Real, (\"x\", Lebesgue (Lam (Real, (\"t\",\n                App (Var \"f\", Var \"t\"))), Var \"a\", Var \"x\"))), Var \"x\"),\n        App (Var \"f\", Var \"x\"))\n      ))\n    ))\n  ))\n```\n\n```\nlet proof_ftc = Lam (Real, (\"a\", Lam (Real, (\"b\", Lam (Pi (Real, (\"x\", Real)), (\"f\",\n  Pair (\n    \"cont\", Refl (continuous (Set (Lam (Real, (\"x\",\n            And (RealIneq (RGte, Var \"x\", Var \"a\"),\n                 RealIneq (RLte, Var \"x\", Var \"b\"))))), Var \"f\")),\n    Refl (Id (Real,\n      diff (Lam (Real, (\"x\", Lebesgue (Lam (Real, (\"t\",\n            App (Var \"f\", Var \"t\"))), Var \"a\", Var \"x\"))), Var \"x\"),\n      App (Var \"f\", Var \"x\")))\n    )\n  ))))))\n```\n\n### Lebesgue Dominated Convergence Theorem\n\n* Volume 2: Topology and Functional Analysis\n* Chapter III: Integration\n\nIf 𝑓𝑛→𝑓 a.e., ∣𝑓𝑛∣≤𝑔, and ∫𝑔\u003c∞, then ∫𝑓𝑛→∫𝑓.\n\n```\nlet dominated_convergence = Pi (Seq (Pi (Real, (\"x\", Real)), (\"fn\",\n  Pi (Pi (Real, (\"x\", Real)), (\"f\",\n    Pi (Pi (Real, (\"x\", Real)), (\"g\",\n      And (\n        Limit (Nat, Var \"fn\", Var \"f\"),\n        And (\n          Pi (Nat, (\"n\", Pi (Real, (\"x\",\n               RealIneq (RLte, abs (App (App (Var \"fn\", Var \"n\"), Var \"x\")),\n                        App (Var \"g\", Var \"x\")))))),\n          And (\n            integrable (Var \"g\"),\n            Id (Real,\n              Limit (Nat, Lam (Nat, (\"n\", Lebesgue (App (Var \"fn\", Var \"n\"), zero, one))),\n              Lebesgue (Var \"f\", zero, one))\n            )\n          ))\n        )\n      ))\n    ))\n  ))\n```\n\n```\nlet proof_dominated = Lam (Seq (Pi (Real, (\"x\", Real)), (\"fn\",\n  Lam (Pi (Real, (\"x\", Real)), (\"f\",\n    Lam (Pi (Real, (\"x\", Real)), (\"g\",\n      Pair (\n        \"lim\", Refl (Limit (Nat, Var \"fn\", Var \"f\")),\n        Pair (\n          \"dom\", Pi (Nat, (\"n\", Refl (Pi (Real, (\"x\",\n                RealIneq (RLte, abs (App (App (Var \"fn\", Var \"n\"), Var \"x\")),\n                         App (Var \"g\", Var \"x\"))))))),\n          Pair (\n            \"int_g\", Refl (integrable (Var \"g\")),\n            Refl (Id (Real,\n              Limit (Nat, Lam (Nat, (\"n\", Lebesgue (App (Var \"fn\", Var \"n\"), zero, one))),\n              Lebesgue (Var \"f\", zero, one)))\n            )\n          )\n        )\n      ))))))\n```\n\n### Schwartz Kernel Theorem\n\n* Volume 2. Topology and Functional Analysis\n* Chapter VI: Distributions\n\nEvery continuous bilinear form 𝐵:𝐷(𝑅^𝑛)×𝐷(𝑅^𝑚)→𝑅 is represented by a distribution 𝐾∈𝐷′(𝑅^𝑛×𝑅^𝑚) via 𝐵(𝜙,𝜓)=⟨𝐾,𝜙⊗𝜓⟩B(ϕ,ψ)=⟨K,ϕ⊗ψ⟩.\n\n```\nlet kernel_theorem = Pi (Pi (Real, (\"x\", Real), Pi (Real, (\"y\", Real)), (\"B\",\n  Sig (Set (Pi (Real, (\"x\", Pi (Real, (\"y\", Real)))), (\"K\",\n    Pi (Pi (Real, (\"x\", Real)), (\"phi\",\n      Pi (Pi (Real, (\"y\", Real)), (\"psi\",\n        Id (Real,\n          App (App (Var \"B\", Var \"phi\"), Var \"psi\"),\n          App (Var \"K\", Lam (Real, (\"x\",\n                        Lam (Real, (\"y\",\n            RealOps (RMul, App (Var \"phi\", Var \"x\"),\n                           App (Var \"psi\", Var \"y\")))))))))))))))\n```\n\nProof. Classical, relies on nuclear space properties of 𝐷: define 𝐾(𝑓)=𝐵(𝑓(⋅,0),𝑓(0,⋅)), extend by density and continuity. \nVerification: 𝐵(𝜙,𝜓)=⟨𝐾,𝜙⊗𝜓⟩ externally tested.\n\n```\nlet proof_kernel = Lam (Pi (Real, (\"x\", Real), Pi (Real, (\"y\", Real)), (\"B\",\n  Pair (\n    \"K\", Lam (Pi (Real, (\"x\", Pi (Real, (\"y\", Real))), (\"f\",\n      App (Var \"B\", Lam (Real, (\"x\", App (Var \"f\", Var \"x\", zero))),\n                    Lam (Real, (\"y\", App (Var \"f\", zero, Var \"y\")))))),\n    Pi (Pi (Real, (\"x\", Real)), (\"phi\",\n      Pi (Pi (Real, (\"y\", Real)), (\"psi\",\n        Refl (Id (Real,\n          App (App (Var \"B\", Var \"phi\"), Var \"psi\"),\n          App (Var \"K\", Lam (Real, (\"x\",\n                        Lam (Real, (\"y\",\n           RealOps (RMul, App (Var \"phi\", Var \"x\"),\n                          App (Var \"psi\", Var \"y\")))))))\n        ))\n      ))\n    )\n  ))))\n```\n\n### Banach Spaces and Duality\n\n* Volume 2. Topology and Functional Analysis\n* Chapter V: Banach Spaces\n\nFor a Banach space 𝑋, there’s a bijection between closed subspaces of 𝑋 and closed subspaces of 𝑋∗: A↦A^⊥, 𝐵↦^⊥𝐵.\nThis bijection applies to closed subspaces (vector spaces), not arbitrary closed sets (e.g., singletons, bounded sets).\n\n```\nlet banach_space x = And (\n  normed_space (Var \"x\"),\n  Pi (Seq (Var \"x\"), (\"xn\",\n    If (cauchy (Var \"xn\", Var \"x\"),\n        Sig (Var \"x\", (\"l\", Limit (Nat, Var \"xn\", Var \"l\"))),\n        Bool)))\n)\n\nlet normed_space x = And (\n  Pi (Var \"x\", (\"a\", Pi (Var \"x\", (\"b\",\n    RealIneq (RLte, norm (RealOps (RPlus, Var \"a\", Var \"b\")),\n        RealOps (RPlus, norm (Var \"a\"), norm (Var \"b\"))))))),\n  Pi (Real, (\"c\", Pi (Var \"x\", (\"a\",\n    Id (Real, norm (RealOps (RMult, Var \"c\", Var \"a\")), \n         RealOps (RMult, abs (Var \"c\"), norm (Var \"a\")))))))\n)\n\nlet cauchy xn x = Pi (Real, (\"eps\",\n  And (RealIneq (RGt, Var \"eps\", zero),\n    Sig (Nat, (\"N\",\n      Pi (Nat, (\"m\", Pi (Nat, (\"n\",\n        If (And (RealIneq (RGt, Var \"m\", Var \"N\"), RealIneq (RGt, Var \"n\", Var \"N\")),\n            RealIneq (RLt, norm (RealOps (RMinus, App (Var \"xn\", Var \"m\"), \n                    App (Var \"xn\", Var \"n\"))), Var \"eps\"), Bool)))))))))\n\nlet norm a = Sup (Lam (Real, (\"r\", RealIneq (RLte, abs (Var \"a\"), Var \"r\"))))\n```\n\nM(K)=C(K)^*.\n\n```\nlet dual_space x = Set (Pi (Var \"x\", (\"a\", Real)), (\"phi\",\n  And (\n    linear (Var \"phi\"),\n    bounded (Var \"phi\")\n  )))\n\nlet linear phi = And (\n  Pi (Var \"x\", (\"a\", Pi (Var \"x\", (\"b\",\n    Id (Real, App (Var \"phi\", RealOps (RPlus, Var \"a\", Var \"b\")),\n              RealOps (RPlus, App (Var \"phi\", Var \"a\"), App (Var \"phi\", Var \"b\")))))),\n  Pi (Real, (\"c\", Pi (Var \"x\", (\"a\",\n    Id (Real, App (Var \"phi\", RealOps (RMult, Var \"c\", Var \"a\")),\n              RealOps (RMult, Var \"c\", App (Var \"phi\", Var \"a\")))))))\n)\n\nlet bounded phi = Sig (Real, (\"M\",\n  And (RealIneq (RGt, Var \"M\", zero),\n    Pi (Var \"x\", (\"a\", RealIneq (RLte, abs (App (Var \"phi\", Var \"a\")),\n                       RealOps (RMult, Var \"M\", norm (Var \"a\"))))))))\n```\n\n```\nlet annihilator x s = Set (dual_space (Var \"x\"), (\"phi\",\n  Pi (Var \"s\", (\"a\", Id (Real, App (Var \"phi\", Var \"a\"), zero)))))\n\nlet pre_annihilator x s = Set (Var \"x\", (\"a\",\n  Pi (dual_space (Var \"x\"), (\"phi\",\n    If (App (Var \"s\", Var \"phi\"),\n      Id (Real, App (Var \"phi\", Var \"a\"), zero), Bool)))))\n```\n\n```\nlet closed_subspace x s = And (\n  subspace (Var \"x\", Var \"s\"),\n  Id (Set (Var \"x\"), Var \"s\", Closure (Var \"s\")))\n\nlet subspace x s = And (\n  Pi (Var \"s\", (\"a\", Pi (Var \"s\", (\"b\",\n    App (Var \"s\", RealOps (RPlus, Var \"a\", Var \"b\")))))),\n  Pi (Real, (\"c\", Pi (Var \"s\", (\"a\",\n    App (Var \"s\", RealOps (RMult, Var \"c\", Var \"a\")))))))\n```\n\n```\nlet bijection_theorem = Pi (Set Real, (\"X\",\n  If (banach_space (Var \"X\"),\n    And (\n      Pi (Set (Var \"X\"), (\"A\",\n        If (closed_subspace (Var \"X\", Var \"A\"),\n            Id (Set (Var \"X\"), Var \"A\", pre_annihilator (Var \"X\", \n                    annihilator (Var \"X\", Var \"A\"))), Bool))),\n      Pi (Set (dual_space (Var \"X\")), (\"B\",\n        If (closed_subspace (dual_space (Var \"X\"), Var \"B\"),\n            Id (Set (dual_space (Var \"X\")), Var \"B\", annihilator (Var \"X\",\n                    pre_annihilator (Var \"X\", Var \"B\"))), Bool))))), Bool)))\n```\n\n```\nlet proof_bijection_theorem = Lam (Set Real, (\"X\",\n  If (Refl (banach_space (Var \"X\")),\n    Pair (\n      \"fwd\", Lam (Set (Var \"X\"), (\"A\",\n        If (Refl (closed_subspace (Var \"X\", Var \"A\")),\n          Pair (\"sub\", Refl (subspace (Var \"X\", pre_annihilator (Var \"X\",\n             annihilator (Var \"X\", Var \"A\")))),\n            Pair (\"closed\", Refl (Id (Set (Var \"X\"), \n                Closure (pre_annihilator (Var \"X\", annihilator (Var \"X\", Var \"A\"))),\n                pre_annihilator (Var \"X\", annihilator (Var \"X\", Var \"A\")))),\n              Refl (Id (Set (Var \"X\"), Var \"A\", pre_annihilator (Var \"X\",\n                    annihilator (Var \"X\", Var \"A\")))))), Bool))),\n      Lam (Set (dual_space (Var \"X\")), (\"B\",\n        If (Refl (closed_subspace (dual_space (Var \"X\"), Var \"B\")),\n          Pair (\"sub\", Refl (subspace (dual_space (Var \"X\"), \n                     annihilator (Var \"X\", pre_annihilator (Var \"X\", Var \"B\")))),\n            Pair (\n              \"closed\", Refl (Id (Set (dual_space (Var \"X\")), \n                Closure (annihilator (Var \"X\", pre_annihilator (Var \"X\", Var \"B\"))),\n                annihilator (Var \"X\", pre_annihilator (Var \"X\", Var \"B\")))),\n              Refl (Id (Set (dual_space (Var \"X\")), Var \"B\", annihilator (Var \"X\",\n                           pre_annihilator (Var \"X\", Var \"B\")))))), Bool)))), Bool)))\n\n```\n\n### Banach-Steinhaus Theorem\n\n* Volume 2. Topology and Functional Analysis\n* Chapter IV. Topological Vector Spaces\n\n∀x∈X, α∈A sup ∥T α x∥ Y​ \u003c∞⟹∃M∈R,∀α∈A,∥T α​ ∥ X→Y​ ≤M, ∥𝑇𝛼∥ = ∥=sup{∥T α x∥ Y ∣∥x∥ X ≤1}. \n\n```\nlet operator x y = Pi (Var \"x\", (\"a\", Var \"y\"))\n\nlet continuous_linear x y t = And (\n  linear (Var \"t\"),\n  bounded (Var \"t\")\n)\n\nlet bounded t = Sig (Real, (\"M\",\n  And (RealIneq (RGt, Var \"M\", zero),\n    Pi (Var \"x\", (\"a\",\n      RealIneq (RLte, norm (App (Var \"t\", Var \"a\")),\n       RealOps (RMult, Var \"M\", norm (Var \"a\"))))))))\n\nlet op_norm x y t = Sup (Lam (Real, (\"r\",\n  Pi (Var \"x\", (\"a\",\n    If (RealIneq (RLte, norm (Var \"a\"), one),\n        RealIneq (RLte, norm (App (Var \"t\", Var \"a\")), Var \"r\"),\n        Bool)))))\n\nlet bounded_set s = Sig (Real, (\"B\",\n  And (RealIneq (RGt, Var \"B\", zero),\n    Pi (Var \"T\", (\"t\", RealIneq (RLte, App (Var \"s\", Var \"t\"), Var \"B\"))))))\n\nlet zero = RealOps (RMinus, Real, Real)\n\nlet one = RealOps (RPlus, zero, zero)\n\n```\n\n```\nlet banach_steinhaus = Pi (Set Real, (\"X\",\n  Pi (Set Real, (\"Y\",\n    If (And (banach_space (Var \"X\"), normed_space (Var \"Y\")),\n      Pi (Set (operator (Var \"X\", Var \"Y\")), (\"T\",\n        If (And (\n              Pi (Var \"T\", (\"t\", continuous_linear (Var \"X\", Var \"Y\", Var \"t\"))),\n              Pi (Var \"X\", (\"x\",\n                bounded_set (Lam (Var \"T\", (\"t\", norm (App (Var \"t\", Var \"x\")))))))),\n            Sig (Real, (\"M\",\n              And (RealIneq (RGt, Var \"M\", zero),\n                Pi (Var \"T\", (\"t\", RealIneq (RLte, \n                op_norm (Var \"X\", Var \"Y\", Var \"t\"), Var \"M\")))))), Bool))), Bool))))\n```\n\n```\nlet proof_banach_steinhaus = Lam (Set Real, (\"X\",\n  Lam (Set Real, (\"Y\",\n    If (Pair (\"banach\", Refl (banach_space (Var \"X\")), \"normed\", Refl (normed_space (Var \"Y\"))),\n      Lam (Set (operator (Var \"X\", Var \"Y\")), (\"T\",\n        If (Pair (\n              \"cont_lin\", Refl (Pi (Var \"T\", (\"t\", continuous_linear (Var \"X\", Var \"Y\", Var \"t\")))),\n              \"pt_bdd\", Refl (Pi (Var \"X\", (\"x\",\n                bounded_set (Lam (Var \"T\", (\"t\", norm (App (Var \"t\", Var \"x\"))))))))),\n          Pair (\n            \"M\", Sup (Lam (Real, (\"r\",\n              Pi (Var \"T\", (\"t\", RealIneq (RLte, op_norm (Var \"X\", Var \"Y\", Var \"t\"), Var \"r\")))))),\n            Pair (\n              \"M_pos\", RealIneq (RGt, Var \"M\", zero),  (* External check *)\n              \"unif_bdd\", Refl (Pi (Var \"T\", (\"t\",\n                RealIneq (RLte, op_norm (Var \"X\", Var \"Y\", Var \"t\"), Var \"M\")))))\n            )\n          ),\n          Bool))),\n      Bool))))\n```\n\n### de Rham Theorem\n\n```\nlet omega := Set (Vec_n n)\n\nlet gamma := \n  Lam (Real, (\"t\", \n    If (RealIneq (RLte, Var \"t\", RealConst 0.5), \n        App (Var \"gamma_1\", RealOps (RMult, RealConst 2, Var \"t\")), \n        App (Var \"gamma_2\", RealOps (RMinus, one, RealOps (RMult, \n          RealConst 2, RealOps (RMinus, Var \"t\", RealConst 0.5)))))))\n\nlet is_open omega := \n  Pi (omega, (\"x\", \n    Sig (Real, (\"delta\", \n      And (RealIneq (RGt, Var \"delta\", zero),\n        Pi (Vec_n n, (\"y\", \n          If (RealIneq (RLt, App (norm, \n              RealOps (RMinus, Var \"y\", Var \"x\")), Var \"delta\"), \n              App (omega, Var \"y\"), \n              Bool))))))))\n\nlet c1_form omega n := \n  Sig (one_form omega n, (\"w\", \n    Pi (omega, (\"x\", \n      Sig (Vec_n n, (\"dw\", \n        Pi (Vec_n n, (\"v\", \n          Id (Real, \n            Limit (Real, Lam (Real, (\"h\", RealOps (RDiv, RealOps (RMinus,\n            App (App (Var \"w\", RealOps (RPlus, Var \"x\", Var \"h\")), Var \"v\"),\n            App (App (Var \"w\", Var \"x\"), Var \"v\"))), Var \"h\"))), zero), \n            App (Var \"dw\", Var \"v\"))))))))))\n\nlet loop omega n := \n  Sig (Pi (Set (Lam (Real, (\"t\", And (RealIneq (RGte, Var \"t\", zero), \n           RealIneq (RLte, Var \"t\", one)))), (\"t\", omega)), (\"gamma\", \n    And (\n      Id (Vec_n n, App (Var \"gamma\", zero), App (Var \"gamma\", one)),\n      Pi (Nat, (\"k\", \n        Sig (Pi (Real, (\"t\", Vec_n n)), (\"dgamma_k\", \n          Pi (Real, (\"t\", \n            Id (Vec_n n, \n              Limit (Vec_n n, Lam (Real, (\"h\", RealOps (RDiv, RealOps (RMinus, \n              App (Var \"gamma\", RealOps (RPlus, Var \"t\", Var \"h\")), \n              App (Var \"gamma\", Var \"t\"))), Var \"h\"))), zero), \n              App (Var \"dgamma_k\", Var \"t\")))))))))))\n\nlet zero_form omega := Pi (omega, (\"x\", Real))\n\nlet interval_measure := \n  Measure (Set (Lam (Real, (\"t\", And (RealIneq (RGte, Var \"t\", zero), \n    RealIneq (RLte, Var \"t\", one)))), Mu (Var \"intervals\", Var \"sigma\"))\n\nlet deriv (Var \"gamma\", Var \"t\") := \n  Limit (Vec_n n, Lam (Real, (\"h\", RealOps (RDiv, RealOps (RMinus, \n    App (Var \"gamma\", RealOps (RPlus, Var \"t\", Var \"h\")),\n         App (Var \"gamma\", Var \"t\"))), Var \"h\"))), zero)\n\nlet integral (Var \"w\", Var \"gamma\") := \n  Lebesgue (Lam (Real, (\"t\", App (App (Var \"w\", App (Var \"gamma\", Var \"t\")), \n        deriv (Var \"gamma\", Var \"t\")))), Var \"interval_measure\")\n\nlet rec cm_form Omega n m := \n  Sig (one_form Omega n, (\"w\", \n    If (Id (Nat, Var \"m\", zero), \n        True, \n        Sig (Pi (Var \"Omega\", (\"x\", Vec_n n)), (\"dw\", \n          And (\n            Pi (Var \"Omega\", (\"x\", Pi (Vec_n n, (\"v\", \n              Id (Real, Limit (Real, Lam (Real, (\"h\", RealOps (RDiv, RealOps (RMinus,\n              App (App (Var \"w\", RealOps (RPlus, Var \"x\", Var \"h\")), Var \"v\"), \n              App (App (Var \"w\", Var \"x\"), Var \"v\"))), Var \"h\"))), zero), \n              App (Var \"dw\", Var \"v\")))))),\n            cm_form Omega n (RealOps (RMinus, Var \"m\", one)) (Lam (Var \"Omega\",\n             (\"x\", Lam (Vec_n n, (\"v\", App (Var \"dw\", Var \"x\")))))))))))))\n\nlet differential (Var \"f\") := \n  Lam (Var \"Omega\", (\"x\", \n    Lam (Vec_n n, (\"v\", \n      Limit (Real, Lam (Real, (\"h\", RealOps (RDiv, RealOps (RMinus, App (Var \"f\", \n        RealOps (RPlus, Var \"x\", Var \"v\")), App (Var \"f\", Var \"x\"))), Var \"h\"))), zero)))))\n\n\n```\n\n```\nlet de_rham_theorem =\n  Pi (Nat, (\"n\",   \n    Pi (Set (Vec (n, Real, RealOps RPlus, RealOps RMult)),\n      Pi (one_form Omega n, (\"omega\",\n        And (c1_form Omega n (Var \"omega\"),\n          And (Pi (loop Omega n, (\"gamma\",\n              Id (Real, integral (Var \"omega\", Var \"gamma\"), zero))),\n            Sig (zero_form Omega, (\"f\", And (\n                Id (one_form Omega n, Var \"omega\", differential (Var \"f\")),\n                Pi (Nat, (\"m\", If (cm_form Omega n (Var \"m\") (Var \"omega\"),\n                  cm_form Omega n (Var \"m\") (Var \"f\"), Bool)))))))))))))))\n```\n\n```\nlet proof : de_rham_theorem =\n  Lam (Nat, (\"n\",\n    Lam (Set (Vec (Real, RealOps RPlus, RealOps RMult)), (\"Omega\",\n      Lam (one_form Omega n, (\"omega\",\n        Pair (\"f\", Lam (Omega, (\"x\", integral (Var \"omega\", path Omega n (Var \"x0\", Var \"x\")))),\n          And (\n            Id (one_form Omega n, Var \"omega\", differential (Var \"f\")),\n            Lam (Nat, (\"m\", If (cm_form Omega n (Var \"m\") (Var \"omega\"),\n              cm_form Omega n (Var \"m\") (Var \"f\"), Bool)))))))))))\n```\n\n## Bibliography\n\n[1]. Laurent Schwartz. Analyse Mathematique (1967)\u003cbr\u003e\n[2]. Errett Bishop. \u003ca href=\"https://archive.org/details/foundationsofcon0000bish\"\u003eFoundations of Constructive Analysis\u003c/a\u003e (1967)\u003cbr\u003e\n[3]. Douglas Bridges. \u003ca href=\"https://core.ac.uk/download/pdf/82492373.pdf\"\u003eConstructive mathematics: a foundation for computable analysis \u003c/a\u003e (1999)\u003cbr\u003e\n[4]. Auke Booij. \u003ca href=\"https://etheses.bham.ac.uk/id/eprint/10411/7/Booij2020PhD.pdf\"\u003eAnalysis in Univalent Type Theory\u003c/a\u003e (2020)\u003cbr\u003e\n[5]. Zachary Murray. \u003ca href=\"https://arxiv.org/pdf/2205.08354\"\u003eConstructive Real Numbers in the Agda Proof Assistant\u003c/a\u003e (2023)\u003cbr\u003e\n[6]. William Ziemer, Monica Torres. \u003ca href=\"https://www.math.purdue.edu/~torresm/pubs/Modern-real-analysis.pdf\"\u003eModern Real Analysis \u003c/a\u003e (2017)\u003cbr\u003e\n\n## Author\n\nNamdak Tonpa\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgroupoid%2Flaurent","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgroupoid%2Flaurent","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgroupoid%2Flaurent/lists"}