Elektrine
Log in Register
Paige Chat Timeline Gallery Friends Email Drive DNS Private DNS Domains VPN Kairo Nerve
Remote

Slava Pestov

@slava@mathstodon.xyz
mastodon 4.7.2
  • Open on mathstodon.xyz

Programming languages, finitely-presented monoids, horses

744 Followers
306 Following
50 Posts
Joined February 11, 2025
Pronouns:
he/him
Homepage:
https://factorcode.org/slava
Generics:
https://download.swift.org/docs/assets/generics.pdf
Monoids:
https://monoids.net
Open post
Slava Pestov @slava@mathstodon.xyz
· 3mo ago
Open source projects will tell you they have no choice but to allow slop, because doing anything else is a form of gatekeeping that will exclude too many potential contributors. Nothing could be further than the truth, though. When the review queue is a non-stop machine gun of giant, bogus drive-by patches, the good contributions will inevitably fall through the cracks. Eventually, the contributors you actually want—those who care about the long-term health of the code base, building institutional knowledge, improving their craft, mentorship—will simply leave, because they will realize their limited time and energy is better spent elsewhere. A blanket ban on LLM contributions is not impractical, idealistic, or too radical—it's just common sense.
880
51
617
3
Open post
Slava Pestov @slava@mathstodon.xyz
· 4w ago

Life of a codebase:

1k lines: this is a promising prototype
10k lines: almost all basic functionality is in place!
100k lines: it’s getting serious, we’ve got real users
1m lines: completely unmaintainable mess, it’s time to start over

58
0
18
0
Open post
Slava Pestov @slava@mathstodon.xyz
· 3mo ago
Smalltalk-80, HyperCard, and Visual Basic 6 were far more compelling "future of programming" attempts than anything available today
208
24
86
1
Open post
Slava Pestov @slava@mathstodon.xyz
· 4w ago

Things are going to get real awkward when OpenAI publishes my secret proof of the Collatz conjecture because then everyone will find out I have an AI girlfriend

14
0
1
0
Open post
Slava Pestov @slava@mathstodon.xyz
· 3w ago

It’s time to bring back the Windows .ini file format

4
0
0
0
Open post
Slava Pestov @slava@mathstodon.xyz
· 3mo ago
Perl 5 LLM policy https://perl.topicbox.com/groups/perl-core/Tded84d01cb16966e-M4f2b94e0c07f9d7cb8e1e76b
perl.topicbox.com

Topicbox

48
4
38
2
Open post
Slava Pestov @slava@mathstodon.xyz
· 3mo ago
Boosted by @joe@f.duriansoftware.com
If you can solve the word problem in this monoid, you’re following too close
33
4
5
2
Open post
Slava Pestov @slava@mathstodon.xyz
· 3w ago

This is probably completely obvious and well known, but I just realized is a one relation monoid presentation of the free *group* on 2 generators.

The relator begins and ends with ‘a’, so bcba=abcb is a two-sided inverse for ‘a’. This allows conjugating the relator, which gives bcbaa=1 and aabcb=1. Thus ‘b’ is invertible too, and repeating the same trick also gives an inverse for ‘c’. Every generator has an inverse, so all cyclic conjugates of the relator equal the identity, so also baabc=1.

So the monoid is isomorphic to the group and its possible to remove the generator ‘c’ since it appears in the relator only once. We’re left with a group with two generators and no relations, so the free group.

The monoid generators ‘a’ and ‘b’ map directly to the group generators, but their inverses are accessed in this weird way through ‘c’, where a^-1 = bcba and b^-1 = aabc.

3
0
0
0
Open post
Slava Pestov @slava@mathstodon.xyz
· 2mo ago

Neo

21
0
0
0
Open post
Slava Pestov @slava@mathstodon.xyz
· 3w ago

RE: @slava@mathstodon.xyz

OpenAI is burning millions in compute to find a finite complete rewriting system for this monoid but they don’t even realize it embeds in the group with the same presentation

mathstodon.xyz
3
0
0
0
Open post
Slava Pestov @slava@mathstodon.xyz
· 4w ago

There is a mistake on Page 335 of Computation with Finitely Presented Groups, by Charles S. Sims. The example starts with this matrix and computes its Smith normal form:

M := [
[2, 2, 6, 4, 0],
[6, 4, 16, 10, -14],
[4, 3, 11, 7, 0],
[8, 5, 21, 13, -4]
];;

Sims works it out to say the answer has 1, 2, 4, 0 on the diagonal. But it should actually be 1, 2, 2, 0 according to GAP:

S := SmithNormalFormIntegerMat( M );
[ [ 1, 0, 0, 0, 0 ], [ 0, 2, 0, 0, 0 ], [ 0, 0, 2, 0, 0 ], [ 0, 0, 0, 0, 0 ] ]

Feel free to mail the reward check to the address shown below!

3
0
0
0
Open post
Slava Pestov @slava@mathstodon.xyz
· 2mo ago

The official beer of the Riemann hypothesis?

12
1
0
0
Open post
Slava Pestov @slava@mathstodon.xyz
· 2mo ago

Electron but with lynx as the browser engine

13
1
3
0
Open post
Slava Pestov @slava@mathstodon.xyz
· 2mo ago

Chalkidiki, Greece

10
3
0
0
Open post
Slava Pestov @slava@mathstodon.xyz
· 3mo ago
All the scrubs who joined for the tech hot takes start unfollowing every time I post about one-relation monoids. I think of it as cleaning up technical debt
18
1
0
0
Open post
Slava Pestov @slava@mathstodon.xyz
· 3w ago
Boosted by @joe@f.duriansoftware.com
Replying to
@joe@f.duriansoftware.com in an alternate universe we’re setting the default AppleScript dialect to get around the coding assistant
1
0
1
0
Open post
Slava Pestov @slava@mathstodon.xyz
· 2mo ago

What do you mean, compiling the same program twice should produce identical binaries? In the security world they’d call that a “replay attack”

9
1
1
0
Open post
Slava Pestov @slava@mathstodon.xyz
· 1mo ago
Boosted by @joe@f.duriansoftware.com
Two more one-relation monoids are FCRS: - : https://monoids.net/2,1/5246.html - : https://monoids.net/2,1/4865.html Only 4 holdouts left! Length 8: Length 10: Length 11:
monoids.net
2
0
2
0
Open post
Slava Pestov @slava@mathstodon.xyz
· 2mo ago
Boosted by @joe@f.duriansoftware.com
Introducing Objective-Lean
5
0
2
0
Open post
Slava Pestov @slava@mathstodon.xyz
· 2mo ago

This sounds perfect for full stack development. Tk frontend, AOLserver backend.

“AOLserver is multithreaded, Tcl-enabled, and used for large scale, dynamic web sites.”

https://en.wikipedia.org/wiki/AOLserver

en.wikipedia.org
8
1
0
0
Open post
Slava Pestov @slava@mathstodon.xyz
· 2mo ago
Replying to
@simontatham@hachyderm.io “the only sensible thing to do is write a recursive function, containing _one_ of those for loops; give it a parameter to control the recursion depth, and at the deepest level it calls f with the list it built up.” An n-tuple with elements drawn from a finite set of k elements is just a base-k integer with n digits, isn’t it? So an easy way to generate all such n-tuples is to start with the first such tuple and repeatedly increment it by one until you carry the last digit. Seems a bit simpler than recursion
4
0
1
0
Open post
Slava Pestov @slava@mathstodon.xyz
· 2mo ago

Ok, now I’m completely sure that is a finite monoid with 336 elements.

I got Knuth-Bendix completion to succeed by adding the generator c=bbbbbbbb. It generates several million rules, before settling at 216 and establishing confluence.

Most of those intermediate rules don’t participate in any reductions leading up to the final system, so they can be thrown out. Only ~32,000 intermediate rules are referenced by the 216 that remain at the end.

For every necessary rule, I recorded a path that defines it from the two original axioms, together with c=bbbbbbbb. Here is the result (warning - large HTML file):

https://monoids.net/336.html

monoids.net
3
2
0
0
Open post
Slava Pestov @slava@mathstodon.xyz
· 3mo ago
Boosted by @joe@f.duriansoftware.com
MAF is so fucking hardcore, it doesn’t even build on Linux out of the box unless you edit the Makefile, it cracks my 87-element monoid instantly, and it also has a direct implementation of a Rubik’s cube as a permutation group https://sourceforge.net/p/maffsa/code/HEAD/tree/rubik.cpp
sourceforge.net
4
0
1
0
Open post
Slava Pestov @slava@mathstodon.xyz
· 3mo ago
Boosted by @joe@f.duriansoftware.com
For some reason they always write “Assisted-by: Claude” in their commit messages instead of “Assisted-by: human reviewers who patiently explained why the original change was completely wrong, and pointed out the exact lines of code to change instead”
5
0
2
0
Open post
Slava Pestov @slava@mathstodon.xyz
· 2mo ago

Zig incremental compilation internals https://mlugg.co.uk/posts/incremental-compilation-internals/

mlugg.co.uk
2
1
1
0
Open post
Slava Pestov @slava@mathstodon.xyz
· 2mo ago
Replying to
@joe@f.duriansoftware.com Excellent window manager too
1
3
0
0
Open post
Slava Pestov @slava@mathstodon.xyz
· 3mo ago
Replying to
@SRAZKVT@tech.lgbt @pinskia@hachyderm.io Swift generics are separately compile. They do not require monomorphization, it is an optimization that can be performed when function bodies are visible to the caller (but obviously an important one because you can imagine there is some overhead otherwise)
2
1
0
0
Open post
Slava Pestov @slava@mathstodon.xyz
· 3mo ago
Boosted by @joe@f.duriansoftware.com
Replying to
I’m too scared to look for too many of my old posts for fear of cringe, but here is the original Factor announcement: https://www.sheeeeeeeep.art/raw/catlang-archive/20040416-041718a-new-concatenative-language--factor.html
sheeeeeeeep.art
2
1
1
0
Open post
Slava Pestov @slava@mathstodon.xyz
· 2mo ago

A counterexample to the unit conjecture for group rings, Giles Gardam

https://arxiv.org/abs/2102.11818

arxiv.org
1
1
0
0
Open post
Slava Pestov @slava@mathstodon.xyz
· 2mo ago

A Database of One-relator Groups https://warwick.ac.uk/fac/sci/maths/people/staff/linton/homepage/

warwick.ac.uk
1
0
0
0
Open post
Slava Pestov @slava@mathstodon.xyz
· 2mo ago
Replying to
@zwarich@hachyderm.io @joe@f.duriansoftware.com Oh yeah, it’s even more ridiculous than I imagined it would be at first glance because of that.
1
28
0
0
Open post
Slava Pestov @slava@mathstodon.xyz
· 2mo ago
Replying to
@zwarich@hachyderm.io @joe@f.duriansoftware.com You could use a nonsensical built-in bitwise ordering as the basis for something Opinionated™️ like saying that the default associative collection implementation is a balanced binary tree that uses this ordering, because you personally believe hash tables are too nondeterministic or something
1
11
0
0
Open post
Slava Pestov @slava@mathstodon.xyz
· 2mo ago
Replying to
@zwarich@hachyderm.io @joe@f.duriansoftware.com Ideally in a compiler you wouldn’t have any hash functions that depend on the address of a value at all, because then it’s easy to introduce non-deterministic behavior. But I assume it’s not practical to ban this entirely
1
1
0
0
Open post
Slava Pestov @slava@mathstodon.xyz
· 2mo ago
Replying to
@joe@f.duriansoftware.com @zwarich@hachyderm.io Bit ranges for full generality, right?
1
1
0
0
Open post
Slava Pestov @slava@mathstodon.xyz
· 3mo ago
Replying to
@joe@f.duriansoftware.com @zwarich@hachyderm.io what if each type had a range of NaN values as well, so that x != x, and uninhabited values were defined and presented that way
1
3
0
0
Open post
Slava Pestov @slava@mathstodon.xyz
· 3mo ago
Replying to

@joe@f.duriansoftware.com @zwarich@hachyderm.io Also the if statement takes any type value as the condition, and checks if its zero

1
4
0
0
Open post
Slava Pestov @slava@mathstodon.xyz
· 3mo ago
Replying to
@joe@f.duriansoftware.com @SRAZKVT@tech.lgbt @pinskia@hachyderm.io or you could allow size polymorphism but insist that all generic values are POD
1
12
0
0
Open post
Slava Pestov @slava@mathstodon.xyz
· 2mo ago
Replying to
@zwarich@hachyderm.io @joe@f.duriansoftware.com In C# implementations, at what point does monomorphization happen? Do they execute unspecialized code at all? Is there an interpreter for it?
0
3
0
0
Open post
Slava Pestov @slava@mathstodon.xyz
· 6d ago
Boosted by @joe@f.duriansoftware.com
I took some of my posts from here about commutative monoids and massaged them into a more permanent form. It’s all pretty basic stuff, but perhaps someone will find it useful: https://monoids.net/2,2.html#commutative
monoids.net

Monoids with two generators and two relations

0
0
1
0
Open post
Slava Pestov @slava@mathstodon.xyz
· 1w ago
Boosted by @joe@f.duriansoftware.com
Replying to
@joe@f.duriansoftware.com 🐛
0
0
1
0
Open post
Slava Pestov @slava@mathstodon.xyz
· 3mo ago
Boosted by @joe@f.duriansoftware.com
Replying to
@joe@f.duriansoftware.com I don’t know man, if the day was truly independent we’d be able to celebrate it whenever we wanted to
0
0
1
0
Open post
Slava Pestov @slava@mathstodon.xyz
· 9h ago
Replying to
@joe@f.duriansoftware.com Bold assumption on OP’s part that modern knowledge work actually exercises in the brain in some way
0
0
1
0
Open post
Slava Pestov @slava@mathstodon.xyz
· 3mo ago
Replying to
@joe@f.duriansoftware.com @zwarich@hachyderm.io Is every pointer nullable in this model?
0
8
0
0
Open post
Slava Pestov @slava@mathstodon.xyz
· 2mo ago
Replying to
@zwarich@hachyderm.io @joe@f.duriansoftware.com See if you had asked me 20 years ago I would have guessed we’d all be using JITted languages by now
0
6
0
0
Open post
Slava Pestov @slava@mathstodon.xyz
· 9h ago
Boosted by @joe@f.duriansoftware.com
Replying to
@steve@discuss.systems @joe@f.duriansoftware.com The “I need to design my own programming language -> operating system -> CPU -> VLSI CAD system -> programming language” doom loop
0
2
1
0
Open post
Slava Pestov @slava@mathstodon.xyz
· 2mo ago
Replying to
@zwarich@hachyderm.io @Gankra@toot.cat @joe@f.duriansoftware.com just add a magic compiler flag to turn assertions into assumptions and flip it on once you’ve exercised all code paths via tests.
0
0
0
0
Open post
Slava Pestov @slava@mathstodon.xyz
· 2mo ago
Replying to
@zwarich@hachyderm.io @joe@f.duriansoftware.com Also I’ll say that bitwise equality and hashing might be workable but bitwise comparison for sorting seems overly restrictive
0
32
0
0
Open post
Slava Pestov @slava@mathstodon.xyz
· 1w ago
Boosted by @joe@f.duriansoftware.com
I’ve spent a lot of time talking about an and b, but what happens when you have a, b, and c? Introducing: monoids with three generators and two relations https://monoids.net/3,2
monoids.net
0
0
1
0
Open post
Slava Pestov @slava@mathstodon.xyz
· 2mo ago
Replying to
@zwarich@hachyderm.io @joe@f.duriansoftware.com Maybe if you did everything Knuth-style with “pointers” being integers into one big continuously-allocated heap (or multiple heaps by kind, etc), you could guarantee determinism from run to run even if the behavior does depend on hashing order
0
2
0
0
Back
313k7r1n3
Elektrine

Tor hidden service

elekhj7afj4qnrr4yd3bkzslsyo5jgfxw3orgjkhlcxifueodybyiiad.onion

I2P eepsite

j6b6cyk6gjmepjih7jjadxgxvvf3lzzujljuu2v4biemzpg3naya.b32.i2p

Platform

  • Email
  • Chat
  • Timeline
  • VPN
  • DNS

Company

  • About
  • Contact
  • FAQ
  • Lite (no JS)

Legal

  • Terms of Service
  • Privacy Policy
  • Transparency Report
  • Report Abuse
  • Warrant Canary
  • VPN Policy

Support

  • support@elektrine.com
  • Report Security Issue
Mail client setup IMAP mail.elektrine.com:993 POP3 mail.elektrine.com:995 SMTP mail.elektrine.com:465
© 2026 Elektrine. All rights reserved. Server: 00:56:15 UTC