Skip to content

Instantly share code, notes, and snippets.

@NotBad4U
NotBad4U / aclia.lp
Last active March 6, 2025 16:50
Test for #1211
// require open test.Z Stdlib.Set Stdlib.Prop;
require open tests.OK.Z tests.OK.Pos tests.OK.Set;
constant symbol R : TYPE;
symbol var : ℤ → ℤ → R;
/* semantics: [var k x] = k * x
note that the second argument could be any type that has a ring structure
(we then would take R : TYPE → TYPE) */
constant symbol cst:ℤ → R;
require open Stdlib.Nat Stdlib.Z Stdlib.Set Stdlib.Prop Stdlib.Bool Stdlib.Comp Stdlib.List;
constant symbol R : TYPE;
constant symbol cst:ℤ → R;
symbol var : ℤ → ℕ → R;
/* semantics: [var k x] = k * x
note that the second argument could be any type that has a ring structure
(we then would take R : TYPE → TYPE) */
@NotBad4U
NotBad4U / AC.lp
Created February 13, 2025 16:52
AC
require open Stdlib.Z Stdlib.Set Stdlib.Prop;
constant symbol R : TYPE;
symbol var : ℤ → ℤ → R;
/* semantics: [var k x] = k * x
note that the second argument could be any type that has a ring structure
(we then would take R : TYPE → TYPE) */
constant symbol cst:ℤ → R;
symbol opp:R → R;
@NotBad4U
NotBad4U / lia.lp
Created January 21, 2025 10:34
Bug with set ?
require open Stdlib.Prop;
require open Stdlib.FOL;
require open Stdlib.HOL;
require open Stdlib.Eq;
require open Stdlib.Set;
require open Stdlib.Z;
require open Stdlib.Pos;
require open Stdlib.Bool;
require open Stdlib.Comp;
require open Stdlib.Impred;
@NotBad4U
NotBad4U / tauto.lp
Created November 13, 2024 19:11
tauto
require open Stdlib.Prop;
require open Stdlib.FOL;
require open Stdlib.Eq;
require open Stdlib.Nat;
require Stdlib.Bool;
require open Stdlib.Set;
require open Stdlib.List;
inductive prop: TYPE ≔
|pTrue: prop
@NotBad4U
NotBad4U / lia.lp
Last active September 26, 2024 14:48
lia
require open Stdlib.Set Stdlib.Prop Stdlib.FOL Stdlib.Eq Stdlib.Pos Stdlib.Bool;
inductive ℤ : TYPE ≔ // \BbbZ
| Z0 : ℤ
| Zpos : ℙ → ℤ
| Zneg : ℙ → ℤ;
constant symbol int : Set;
require open Stdlib.FOL;
require open Stdlib.Prop;
require open Stdlib.Set;
require open Stdlib.Nat;
require open Stdlib.Bool;
require open Stdlib.Eq;
require open Stdlib.Z;
require open Stdlib.List;
// References use
// PRELUDE ##############
// Définitions intuitioniste nécessaires pour illustrer le problème dans Classic.
constant symbol Prop : TYPE;
injective symbol π : Prop → TYPE; // `p
constant symbol ∨ : Prop → Prop → Prop; notation ∨ infix left 6; // \/ or \vee
constant symbol ∨ᵢ₁ [p q] : π p → π (p ∨ q);
@NotBad4U
NotBad4U / Inc.v
Created September 14, 2023 21:05
From Coq Require Import Bool.Bool.
From Coq Require Import Arith.Arith.
From Coq Require Import Arith.EqNat.
From Coq Require Import Arith.PeanoNat. Import Nat.
From Coq Require Import Lia.
Require Export Coq.Strings.String.
From Coq Require Import Logic.FunctionalExtensionality.
From Coq Require Import Lists.List.
Import ListNotations.
trait Category<'a> { // A
type Y<A: 'a, B: 'a>; // B
fn id<A: 'a>() -> Self::Y<A, A>;
fn compose<A:'a,B: 'a, C:'a>(f: Self::Y<A, B>, g: Self::Y<B, C>) -> Self::Y<A, C>;
}
struct WrapperFunc;