Skip to content

Instantly share code, notes, and snippets.

------------------------------ MODULE real -------------------------------
EXTENDS Naturals, Integers, Sequences, FiniteSets, FiniteSetsExt, NaturalsInduction
CONSTANT max
McNat == 0..max
(***********************************************************************)
(* Approximate sqrt(r) *)
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;
@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.
// 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);
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
@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;
@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
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 / 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;
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) */