<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Empirical on CS Theorems</title><link>https://cs.lozic.me/kinds/empirical/</link><description>Recent content in Empirical on CS Theorems</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Fri, 10 Dec 2027 12:00:00 +0100</lastBuildDate><atom:link href="https://cs.lozic.me/kinds/empirical/index.xml" rel="self" type="application/rss+xml"/><item><title>Resolution and CDCL</title><link>https://cs.lozic.me/posts/t050-resolution-and-cdcl/</link><pubDate>Fri, 10 Dec 2027 12:00:00 +0100</pubDate><guid>https://cs.lozic.me/posts/t050-resolution-and-cdcl/</guid><description>&lt;h2 id="symptom"&gt;Symptom&lt;/h2&gt;
&lt;p&gt;SAT is NP-complete (T027). It is &lt;em&gt;the&lt;/em&gt; NP-complete problem, the one everything
else reduces to. The textbook conclusion is that you should avoid it.&lt;/p&gt;
&lt;p&gt;Meanwhile: a hardware verification team routinely discharges instances with two
million variables and ten million clauses in under a minute. Package managers
solve dependency resolution with SAT. Every bounded model checker (T049) is a SAT
solver with a front end. The planning community abandoned custom search for
SAT encodings and got faster.&lt;/p&gt;</description></item><item><title>Conway's Law</title><link>https://cs.lozic.me/posts/t089-conways-law/</link><pubDate>Fri, 23 Oct 2026 12:00:00 +0200</pubDate><guid>https://cs.lozic.me/posts/t089-conways-law/</guid><description>&lt;h2 id="symptom"&gt;Symptom&lt;/h2&gt;
&lt;p&gt;The service has four layers. Nobody designed four layers. There were four teams.&lt;/p&gt;
&lt;p&gt;Or the version that arrives in a postmortem: the outage happened at the boundary
between two services, in the retry logic, because each side assumed the other
owned the deduplication. Both teams were right about their own component and
neither had ever been in a room with the other.&lt;/p&gt;</description></item><item><title>Gustafson's Law and the Universal Scalability Law</title><link>https://cs.lozic.me/posts/t082-gustafsons-law-and-the-usl/</link><pubDate>Fri, 25 Sep 2026 12:00:00 +0200</pubDate><guid>https://cs.lozic.me/posts/t082-gustafsons-law-and-the-usl/</guid><description>&lt;h2 id="symptom"&gt;Symptom&lt;/h2&gt;
&lt;p&gt;Two measurements that both look like they break the previous post.&lt;/p&gt;
&lt;p&gt;The first: your Spark job takes four hours on ten nodes. You move it to a
hundred nodes and it still takes four hours — but it is now processing ten times
the data. &lt;a href="https://cs.lozic.me/posts/t081-amdahls-law/"&gt;T081&lt;/a&gt; said the ceiling was
20×, and nobody hit a ceiling.&lt;/p&gt;</description></item><item><title>Hyrum's Law and Postel's Principle</title><link>https://cs.lozic.me/posts/t091-hyrums-law-and-postels-principle/</link><pubDate>Fri, 11 Sep 2026 12:00:00 +0200</pubDate><guid>https://cs.lozic.me/posts/t091-hyrums-law-and-postels-principle/</guid><description>&lt;h2 id="symptom"&gt;Symptom&lt;/h2&gt;
&lt;p&gt;You fix a typo in an error message. Four days later a customer escalates:
their alerting pipeline greps for the old string and has gone quiet.&lt;/p&gt;
&lt;p&gt;Or you make a function faster, and a test suite that had been green for two years
starts failing intermittently — not because the function is wrong, but because
it used to be slow enough to hide a race.&lt;/p&gt;</description></item></channel></rss>