kruskal-theorems

Kruskal and Higman type tree theorems for the Kruskal-AlmostFull library

https://github.com/dmxlarchey/kruskal-theorems

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
Last synced: 10 months ago · JSON representation

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
Created over 2 years ago · Last pushed over 1 year ago
Metadata Files
Readme License Authors Codemeta

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

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

All Time
  • Total Commits: 24
  • Total Committers: 1
  • Avg Commits per committer: 24.0
  • Development Distribution Score (DDS): 0.0
Past Year
  • Commits: 5
  • Committers: 1
  • Avg Commits per committer: 5.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email 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

.github/workflows/main.yml actions
  • actions/checkout v2 composite
  • coq-community/docker-coq-action v1 composite