Skip to content

Instantly share code, notes, and snippets.

@qexat
qexat / deez_nats.py
Created October 31, 2025 11:06
oh my god lexa will you ever stop defining peano integers in every language on earth a thousand times AND differently every time like seriously im starting to get worried for your mental health i mean what even is your goal with that what do you gain from it because i dont see it and look im not trying to be dismissive or anything but you could …
import enum
import typing
class Nat(enum.Enum):
O = enum.auto()
S = enum.auto()
type nat = typing.Literal[Nat.O] | tuple[typing.Literal[Nat.S], nat]
O = Nat.O
@qexat
qexat / Hoskaml.ml
Last active October 26, 2025 11:33
mmm... perform_io...
module Util = struct
let ( let*? ) = Option.bind
let ( let*! ) = Result.bind
let ( let@ ) = ( @@ )
let ( *> ) f g x = g (f x)
let curry = ( @@ )
let curry2 f a b = f (a, b)
let curry3 f a b c = f (a, b, c)
let ( let|> ) a k = a (curry k)
let ( let||> ) a k = a (curry2 k)
@qexat
qexat / Or_gadt.ml
Created October 16, 2025 11:31
disjunction funsies with GADTs
type left = private Left_tag
type right = private Right_tag
type ('ctr, 'left, 'right) t =
| Left : 'a 'b. 'a -> (left, 'a, 'b) t
| Right : 'a 'b. 'b -> (right, 'a, 'b) t
let introduction_left : type a b. a -> (left, a, b) t =
fun a -> Left a
@qexat
qexat / ramblings.hs
Created October 7, 2025 07:45
functor ramblings in pseudo-haskell. unfortunately perfect parsing requires multicategories
e ::= x
| '(' e ')'
| e e
| 'λ' x '.' e
---------------------------------------------------------------
_&>_ a b = a ∧ (a → b)
or_elim = (a → c) → (b → c) → a ∨ b → c
or_elim f _ (Left a) = f a
or_elim _ g (Right b) = g b
@qexat
qexat / README.md
Created September 26, 2025 07:21
static verification of equality in python! try it on a typechecker like pyright
{-# LANGUAGE AllowAmbiguousTypes #-}
{-# LANGUAGE FunctionalDependencies #-}
{-# LANGUAGE UndecidableSuperClasses #-}
import Data.Kind
class (c a, c b) => SafeCoercible (c :: Type -> Constraint) a b | c a -> b where
safeCoerce :: a -> b
instance SafeCoercible Num Int Float where
@qexat
qexat / the_bug_fix_workflow.txt
Last active August 27, 2025 15:21
the bug fix workflow, using ribbon's project version control system
%%%%%%%%%%%%%%%%%%%%%%%%
% the bug fix workflow %
%%%%%%%%%%%%%%%%%%%%%%%%
=========================
what does a bug fix have?
=========================
-> a name that can be referenced
-> a description to use in commit & release
@qexat
qexat / Refl.ml
Created August 21, 2025 18:07
equality and its negation!
module False = struct
(** This empty type represents falsehood. No proof (term) of
it exists. *)
type t = |
(** [ex_falso_quodlibet] states that if we have the proof of
falsehood, then we can prove anything. *)
let ex_falso_quodlibet : 'a. t -> 'a = function
| _ -> .
end
induct _=_ {T} _ _ ≔
rule reflexivity x. (x : T) -> (Refl x : x = x)
with module
rule symmetry x y. x = y -> y = x ≔ λ (Refl x) → Refl x
rule transitivity x y z. x = y -> y = z -> x = z ≔
fun x-=-y y-=-z → (x-=-y)[ϕ y-=-z]
end
induct _×_ A B ≔
rule pair x y. (x : A) -> (y : B) -> ('(x, y') : A × B)
@qexat
qexat / Max_override.v
Last active July 12, 2025 13:50
small proofs of the "override" properties of max(a, b) on ℕ
Require Import Arith.
Lemma max_override_right : forall (n m p : nat), (n >= m) -> max n (max m p) = max n p.
Proof.
intros n m p ge_n_m.
inversion ge_n_m ; rewrite Nat.max_assoc.
- rewrite Nat.max_id.
reflexivity.
- rewrite H0.