kruskal-theorems
Kruskal and Higman type tree theorems for the Kruskal-AlmostFull library
Science Score: 26.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (10.1%) to scientific vocabulary
Repository
Kruskal and Higman type tree theorems for the Kruskal-AlmostFull library
Basic Info
- Host: GitHub
- Owner: DmxLarchey
- License: mpl-2.0
- Language: Coq
- Default Branch: main
- Size: 81.1 KB
Statistics
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
- Releases: 3
Metadata Files
README.md
(**************************************************************)
(* Copyright Dominique Larchey-Wendling [*] *)
(* *)
(* [*] Affiliation LORIA -- CNRS *)
(**************************************************************)
(* This file is distributed under the terms of the *)
(* Mozilla Public License Version 2.0, MPL-2.0 *)
(**************************************************************)
What is this library?
This sub-project is part of the larger project Coq-Kruskal described here: https://github.com/DmxLarchey/Coq-Kruskal.
The library is build on top of Kruskal-Trees, Kruskal-Finite, Kruskal-AlmostFull, Kruskal-Higman and Kruskal-Veldman, and derives several instances of Kruskal's tree theorem for the homeomorphic embedding on rose trees, and of Higman's theorem for the product embedding on trees of bounded breadth (the terminology/name for "Higman's theorem" is Wim Veldman's).
If your wish is to understand the internals of the proof technique to establish Kruskal's tree theorem in inductive type theory,
and its beauty btw, the place you want to look at is rather Kruskal-Veldman which contains most
of the details of the proof arguments, largely inspired by, but at the same time improving on the pen&paper proof of Wim Veldman.
In here you will just find easy consequences of that result. The proofs of those derived theorems are much simpler,
ie. all the complexity is hidden in the Kruskal-Veldman main result.
Those easy proofs proceed via surjective relational morphisms, or, as a degenerate case of morphism, simple inclusion
between relations.
How to install Kruskal-Theorems
It can be installed via opam since release v1.0 which is now included
in coq-opam.
console
opam repo add coq-released https://coq.inria.fr/opam/released
opam update
opam install coq-kruskal-theorems
Notice that to import it in a development, as with Kruskal-AlmostFull, one should
consistently choose between:
- the Prop-bounded version accessed via eg From KruskalThmProp Require ...;
- or the Type-bounded version via eg From KruskalThmType Require ....
Mixing both versions is possible but hard and not recommended due
to the total overlap of the namespaces except for the prefixes KruskalThm{Prop,Type}.
What are the main results
There are several formulations of Kruskal's tree theorem available depending on the exact representation of indexed rose trees, either as vectors of rose trees,... or list of rose trees which is the simplest to present: ```coq Inductive ltree (X : Type) : Type := | inltree : X → list (ltree X) → ltree X where "⟨x|l⟩ₗ" := (@inltree _ x l).
Inductive listembed {X Y} (R : X → Y → Prop) : list X → list Y → Prop := | listembednil : [] ≤ₗ [] | listembedhead x l y m : R x y → l ≤ₗ m → x::l ≤ₗ y::m | listembedskip l y m : l ≤ₗ m → l ≤ₗ y::m where "l ≤ₗ m" := (listembed R l m).
Inductive ltreehomeoembed {X} (R : rel₂ X) : ltree X → ltree X → Prop := | homeoembedsubt s t x l : t ∈ l → s ≤ₕ t → s ≤ₕ ⟨x|l⟩ₗ | homeoembedroot x l y m : R x y → listembed ≤ₕ l m → ⟨x|l⟩ₗ ≤ₕ ⟨y|m⟩ₗ where "s ≤ₕ t" := (ltreehomeo_embed R s t).
Theorem afltreehomeoembed X (R : rel₂ X) : af R → af (ltreehomeo_embed R).
``
and herein proved in [kruskaltheorems.v`](theories/kruskaltheorems.v). The predicate af
characterizes almost full relations inductivelly and is defined and described in
Kruskal-AlmostFull. So this
is a more abstract formulation than that of Kruskal's tree theorem (because the
af predicate abstracts the notion of Well Quasi Ordering
in a constructive way.
From this theorem formulated abstractly, we derive a proof of
Vazsonyi's conjecture
(which turned out to be a theorem) and which is proved here in vazsonyi_theorems:
coq
Theorem vazsonyi_theorem X (R : rel₂ (ltree X)) :
(∀ s t x l, t ∈ l → R s t → R r ⟨x|l⟩ₗ)
→ (∀ x l y m, list_embed R l m → R ⟨x|l⟩ₗ ⟨y|m⟩ₗ)
→ ∀f : nat → ltree X, ∃ i j, i < j < n ∧ R (f i) (f j).
There, R abstract any relation closed for the two rules of the homeomorphic embedding.
Owner
- Name: Dominique Larchey-Wendling
- Login: DmxLarchey
- Kind: user
- Location: Nancy, France
- Company: CNRS
- Repositories: 9
- Profile: https://github.com/DmxLarchey
CodeMeta (codemeta.json)
{
"@context": "https://doi.org/10.5063/schema/codemeta-2.0",
"type": "SoftwareSourceCode",
"author": [
{
"id": "https://orcid.org/0000-0001-9860-7203",
"type": "Person",
"affiliation": {
"type": "Organization",
"name": "Departement of Formal Method, TYPES team, LORIA, CNRS"
},
"email": "dominique.larchey-Wendling@loria.fr",
"familyName": "Larchey-Wendling",
"givenName": "Dominique"
}
],
"codeRepository": "git+https://github.com/DmxLarchey/Kruskal-Theorems.git",
"dateCreated": "2024-04-15",
"dateModified": "2024-11-22",
"datePublished": "2024-04-15",
"description": "This library is an extension of Kruskal-AlmostFull. It contains several instances of Kruskal's tree theorem for the homeomorphic embedding on rose trees, and of Higman's theorem for the product embedding on trees of bounded breadth.\n",
"downloadUrl": "https://github.com/DmxLarchey/Kruskal-Theorems/archive/refs/tags/1.1.tar.gz",
"funder": {
"type": "Organization",
"name": "CNRS"
},
"isPartOf": "https://github.com/DmxLarchey/Coq-Kruskal",
"keywords": [
"coq",
"dependent types",
"almost full relations",
"Kruskal's tree theorem"
],
"license": "https://spdx.org/licenses/MPL-2.0",
"name": "Kruskal-Theorems",
"operatingSystem": [
"Linux",
"MacOS"
],
"programmingLanguage": "Coq",
"relatedLink": "https://github.com/DmxLarchey/Kruskal-AlmostFull",
"softwareRequirements": "opam, ocaml",
"version": "1.2",
"developmentStatus": "active",
"issueTracker": "https://github.com/DmxLarchey/Kruskal-Theorems/issues"
}
GitHub Events
Total
- Watch event: 1
- Push event: 2
- Pull request event: 1
- Create event: 1
Last Year
- Watch event: 1
- Push event: 2
- Pull request event: 1
- Create event: 1
Committers
Last synced: about 1 year ago
Top Committers
| Name | Commits | |
|---|---|---|
| Dominique Larchey-Wendling | l****y@g****m | 24 |
Issues and Pull Requests
Last synced: about 1 year ago
All Time
- Total issues: 0
- Total pull requests: 2
- Average time to close issues: N/A
- Average time to close pull requests: about 1 hour
- Total issue authors: 0
- Total pull request authors: 1
- Average comments per issue: 0
- Average comments per pull request: 0.0
- Merged pull requests: 2
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 1
- Average time to close issues: N/A
- Average time to close pull requests: 6 minutes
- Issue authors: 0
- Pull request authors: 1
- Average comments per issue: 0
- Average comments per pull request: 0.0
- Merged pull requests: 1
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
- DmxLarchey (4)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- actions/checkout v2 composite
- coq-community/docker-coq-action v1 composite