Skip to content

Commit

Permalink
Add files for using higher-order logic (#21)
Browse files Browse the repository at this point in the history
- Add files for higher-order logic:
  HOL: Set constructor ⤳ for quantifying over function types
  Impred: Set constructor o for quantifying over propositions
  Epsilon: Hilbert's ε operator
- Set: add Set constructor ι
  • Loading branch information
fblanqui authored Nov 19, 2024
1 parent ed517d0 commit d5126ad
Show file tree
Hide file tree
Showing 5 changed files with 29 additions and 6 deletions.
17 changes: 11 additions & 6 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,23 @@ and this project adheres to [Semantic Versioning](https://semver.org/).

## Unreleased

- Declare istrue as injective
- Add files for higher-order logic:
HOL: Set constructor ⤳ for quantifying over function types
Impred: Set constructor o for quantifying over propositions
Epsilon: Hilbert's ε operator
- Set: add ι:Set
- Bool: declare istrue as injective

## 1.1.0 (2024-06-21)

- Add classical logic
- Rename top into ⊤ᵢ
- Declare more arguments of ∃ᵢ and ∃ₑ implicit
- Classic: classical logic
- Prop: rename top into ⊤ᵢ
- FOL: declare more arguments of ∃ᵢ and ∃ₑ implicit

## 1.0.0 (2023-10-19)

- Add integers (Quentin Garchery)
- Z: integers (Quentin Garchery)

## 0.0.0 (2022-01-27)

- Add natural numbers and lists (Quentin Buzet)
- Nat, List: natural numbers and lists (Quentin Buzet)
4 changes: 4 additions & 0 deletions Epsilon.lp
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
require open Stdlib.Set Stdlib.Prop Stdlib.FOL;

symbol ε [a:Set] : (τ a → Prop) → τ a;
symbol εᵢ [a:Set] (p:τ a → Prop) : π (∃ p) → π (p (ε p));
7 changes: 7 additions & 0 deletions HOL.lp
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
require open Stdlib.Set;

symbol ⤳ : Set → Set → Set; // \leadsto

notation ⤳ infix right 20;

rule τ ($x ⤳ $y) ↪ τ $x → τ $y;
5 changes: 5 additions & 0 deletions Impred.lp
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
require open Stdlib.Set Stdlib.Prop;

symbol o : Set;

rule τ o ↪ Prop;
2 changes: 2 additions & 0 deletions Set.lp
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

constant symbol Set : TYPE;

constant symbol ι : Set;

// Interpretation of set codes in TYPE

injective symbol τ : Set → TYPE; // `t or \tau
Expand Down

0 comments on commit d5126ad

Please sign in to comment.