Zulip Chat Archive
Stream: new members
Topic: Minimalistic type theory?
Mr Proof (Jul 17 2025 at 10:52):
I was just playing about with type theory and seeing how many operators could I remove and it still be parseable.
e.g.
( P a a a ) Id
( P a P b a b a ) ImpIntro
( P a P b P c (a b) (b c) a c ) SelfImpType
( P a P b P c (a b) f (b c) g a x g (f x) ) SelfImpProof
( N P f f 0 (N n f n f (S n)) (N n f n) ) Induct
To parse it use the rules:
P is a Proposition type.
[type] [type] = [type]->[type]
[type] [vari] = ForAll([vari]:[type]) or ([vari]:[type])=> (depending on context)
[func f] [term t] = f(t)
OK. Not very useful but interesting to see how stripped down you can make it. Till it just becomes lists of lists of symbols.
I also quite like this notation which is a little clearer:
( P.a P.b (a b).f a.x b.(f x) ).FuncApplyProof
( N.x S x ).addOne
( (N P).f f 0 (N.n f n f (S n)) (N.n f n) ).Induct
(this first is the proof of (a->b)->a->b) )
Aaron Liu (Jul 17 2025 at 12:34):
this is unreadable
Mr Proof (Jul 17 2025 at 12:35):
Yep. It's not for human consumption! :laughing:
Aaron Liu (Jul 17 2025 at 12:35):
is everything one letter?
Mr Proof (Jul 17 2025 at 12:36):
Doesn't have to be
Last updated: Dec 20 2025 at 21:32 UTC