Skip to content

Instantly share code, notes, and snippets.

View louisswarren's full-sized avatar

Louis Warren louisswarren

View GitHub Profile
@louisswarren
louisswarren / partition.agda
Created January 22, 2018 01:46
Index an existing type
open import Agda.Builtin.Equality
open import Agda.Builtin.Nat renaming (Nat to ℕ)
record Σ (I : Set)(I→S : I → Set) : Set where
constructor _,_
field
fst : I
snd : I→S fst
-- Partition members of A by their values of f
@louisswarren
louisswarren / kernelupdatebar.py
Last active April 23, 2018 09:18
Py3status module to remind me to reboot if my kernel has updated
# Display a note if the kernel has been updated
import re
import subprocess
def run(*cmdlist):
return subprocess.run(cmdlist, stdout=subprocess.PIPE).stdout.decode()
def running_version():
uname_result = run('uname', '-r')
@louisswarren
louisswarren / playerctlbar.py
Last active August 30, 2020 21:59
Py3status module for playerctl
# py3status module for playerctl
import subprocess
def run(*cmdlist):
return subprocess.run(
cmdlist,
stdout=subprocess.PIPE,
stderr=subprocess.DEVNULL).stdout.decode()
@louisswarren
louisswarren / setminus.agda
Created December 5, 2017 20:23
A surprising amount of work to show that {x}\x is {}
data _≡_ {A : Set}(x : A) : A → Set where
refl : x ≡ x
data Bool : Set where
true : Bool
false : Bool
data ℕ : Set where
zero : ℕ
suc : ℕ → ℕ
@louisswarren
louisswarren / arithmetic.agda
Last active November 29, 2017 13:22
Arithmetic in agda
data _≡_ {A : Set}(x : A) : A → Set where
refl : x ≡ x
record ⊤ : Set where
data ⊥ : Set where
data ℕ : Set where
zero : ℕ
suc : ℕ → ℕ
{-# BUILTIN NATURAL ℕ #-}
@louisswarren
louisswarren / precedence.py
Created November 23, 2017 13:43
In python, `False == False in [False]` is True
class Foo:
def __init__(self, name):
self.name = name
def __eq__(self, other):
print("Testing if {} == {}".format(self.name, other.name))
return True
def __str__(self):
return self.name
@louisswarren
louisswarren / ranges.agda
Created November 22, 2017 21:36
Ranges with agda (terrible)
data Bool : Set where
true : Bool
false : Bool
data ℕ : Set where
zero : ℕ
suc : ℕ → ℕ
{-# BUILTIN NATURAL ℕ #-}
@louisswarren
louisswarren / fun-with-agda.agda
Last active November 21, 2017 15:45
Fun with agda
data ℕ : Set where
zero : ℕ
suc : ℕ → ℕ
_+_ : ℕ → ℕ → ℕ
zero + n = n
(suc n) + m = suc (n + m)
data _≡_ {A : Set}(x : A) : A → Set where
refl : x ≡ x
@louisswarren
louisswarren / cpus.py
Created September 17, 2017 01:32
Solution to a programming contest problem
sample = '''
5 3
1 4 10 1 1
1 1 8 1 1
1 1 9 1 1
'''
def best_profit(prices, cpus_left, profit=0):
if not prices:
return profit
@louisswarren
louisswarren / schemes.scm
Last active August 16, 2017 06:57
Proving scheme relationships in minlog
(add-pvar-name "P" "Q" (make-arity))
(define (mk-disj phi psi)
(mk-imp
(mk-imp phi (pf "Pvar"))
(mk-imp
(mk-imp psi (pf "Pvar"))
(pf "Pvar"))))
(define (mk-neg phi) (mk-imp phi (pf "bot")))