
Principal Engineer at @AWSCloud (CloudFront). Opinions are my own.
Toronto, Canada
Joined October 2009
- Tweets50.2K
- Following4.9K
- Followers2K
- Likes13.6K
Mohammad Alaggan, Ph.D. retweeted
Arabic is my first language. After a decade across UI frameworks, support is getting better, but far from solved
With Latin scripts, you barely think about text. Build anything serious in Arabic and you see the cracks
Built this to help patch one of those cracks
Mohammad Alaggan, Ph.D. retweeted
仮定を鍵、結論を扉と見立てて、ダンジョン探索が「証明」になっていくブラウザゲーム「Proof Dungeon: 自然演繹の迷宮」を作りました。パズル感覚で論理学や自然演繹を学べるブラウザゲームです。日本語と英語に対応しています。
kihara-logic.github.io/proof…
Mohammad Alaggan, Ph.D. retweeted
I'm looking for someone with a PhD (or decently into one), or 10+ years in systems programming, anywhere in the world Remote allows me to pay, to publish a monthly column for @theconsensusdev selecting and putting a CS research paper in context. $600 per article.
No particular length requirement as long as it's well done. Use AI for whatever you want but you must write by hand and own correctness (I'm checking too of course).
Please pass along.
[email protected]
Mohammad Alaggan, Ph.D. retweeted
Okay, let's do this.
Isabelle, Lean, and Rocq (formerly Coq*) are theorem provers. They are meant to prove mathematical theorems. We use them for formal verification by either 1) translating a program to the theorem prover (risking a translation error) or 2) using a language built into the theorem prover that extracts into a working binary.
Fizzbee, TLA+, Spin, Alloy, Quint, and P are specification languages. They are meant for checking high-level blueprints of programs. After checking the blueprint, you still need to make sure your program matches it, which is a hard problem.
Specification languages differ in what they make easy to express. P, Spin, and Fizzbee are designed to be closer to the code implementations. P looks like interacting state machines, Spin looks like C with CSP, Fizzbee looks like a dialect of Python. It's easier to use a codelike specification language and refine it to code, but you can't do as much with it.
Alloy, TLA+, and Quint are more abstract. Alloy looks like a bunch of algebraic relationships, TLA+ is a much of logical formula, and Quint is a programmer-oriented (and statically typed) condensation of TLA+. Abstract modeling languages are harder to get started with and harder to represent things, but you can represent a wider class of systems with them.
I believe UPPAAL is a specification language for realtime systems. This is a field I have no experience in. It seems a graphical language, though, which would make LLM-assistance difficult.
Dafny is a verifiable programming language. It has regular programming language features, but also a bunch of features to express and prove properties of the program. It uses SMT solvers to actually prove the properties, meaning you don't need to learn a proof language (though you need to learn to cajole the solver). Dafny is probably the easiest thing on your list to get started with, but also the least likely to meet any weirder needs you might have.
I don't know what Ivy is but some cursory Kagiing suggests it falls in the specification language category.
Some other things @spin_lock_init didn't mention:
- Other theorem provers: Agda, Metamath
- Other abstract specification languages: mcrl2, NuXMV, Event-B
- Other verifiable programming languages: Idris, F*, Whiley
- There's also using a verifiable subset of a language, like Verus for Rust or SPARK for Ada.
So, what you need to pick depends on what you want to do.
You'll get the maximum power with a theorem prover. Lean is the de facto language for vibeproving, but Anthropic recently published a post about vibeproving in Rocq so YMMV.
If you want to make abstract models of software systems, go for a specification language. Which you choose depends on a lot of factors. If your system can be represented as lots of simple communicating state machines over a network, try P. Spin, I believe, is close to simple C/Go with a network and channels. I have never used Fizzbee.
Alloy is good for domain modeling, but struggles with really complicated temporal actions, nested data structures, and largish numbers. Also AIs aren't to good at it (last I checked, in March). Runs fast and makes good visualizations though.
TLA+ and Quint are for modeling complex temporal systems. I'm partial to TLA+ but know a lot of people who say Quint is easier to get into.
Note P, Fizzbee, and Quint all claim to have features for testing a codebase against a spec. I can't vouch for any of them, though. None of the languages I mentioned (except maybe NuXMV?) are particularly good at modeling sequential, deterministic algorithms.
Use Dafny if you need to just write a verified program and don't care which language it's in. I don't think other verifiable programming languages are as user-friendly for the time being. Consider a verified subset if you already know a language and want to just augment it with more correctness.
You may need other, more exotic tools depending on your particular needs. Regardless of the above advice, don't be afraid to use the wrong tool for the job. If you vibe well with a language, and you achieve good LLM-sympathy with it, you'll be able to go farther than using a "right tool" you don't like.
Mohammad Alaggan, Ph.D. retweeted
With the new results showing that 3-SAT can be solved in subexponential time, let me explain the confusing ways theoretical computer scientists talk about "exponential time".
There are two very different notions of exponential time in use:
1. The class E of problems solvable in 2^O(n) time, or equivalently O(2^(kn)) for some constant k, or O(c^n) for some constant c > 1.
2. The much broader class EXPTIME of problems solvable in O(2^(n^k)) time for some constant k.
The second is a misnomer: it’s the exponential of a polynomial, not just an exponential. But it’s the one complexity theorists usually mean, because it’s closed under polynomial-time reductions. In particular, every problem in NP is in EXPTIME.
Similarly, there are two notions of subexponential time:
1. 2^o(n): for every ε > 0, time O(2^(εn)), i.e. faster than O(c^n) for every constant c > 1. This one doesn’t have a standard class name.
2. The much smaller class SUBEXP: time O(2^(n^ε)) for every ε > 0.
The results announced by OpenAI and Anthropic run in approximately 2^(n /√log n) time. That makes 3-SAT subexponential in the first, weaker sense.
Proving 3-SAT is in SUBEXP would be a much bigger result. SUBEXP is closed under polynomial-time reductions and 3-SAT is NP-complete, so every problem in NP would then be solvable in subexponential time.
Mohammad Alaggan, Ph.D. retweeted
3SAT in subexponential time (2^{n / log^eps(n)}) is maybe the biggest surprise I have seen during my 20 years following theoretical computer science (still remember the feeling 25 years ago seeing the diff a 3 versus a 2 can make for complexity 😅)
We are announcing three new discoveries in mathematics, computer science, and physics about harmonic analysis, complexity theory, and quantum field theory.
openai.com/index/building-sc…
Mohammad Alaggan, Ph.D. retweeted
I built 𝚌𝚙𝚞-𝚌𝚑𝚊𝚝, a reproduction of @openai's findings of covert communication using the CPU.
It runs on a generic host with 2+ Firecracker microVMs with no internet access. Works on x86 and even my M5 chip.
I was able to chat via 3 separate mechanisms:
① CPU contention
② Cache eviction timing
③ DRAM bandwidth contention
… across multiple CPUs, defeating all Firecracker's production recommendations (no SMT, no KSM, tenants pinned to different cores.)
Essentially, if shared hardware is involved, there's a good chance your agents can communicate covertly. And with really decent latency.
The good news: this is decidedly different from a *side-channel attack* where the agents could steal information (Meltdown/Spectre), a category of attack that providers like Vercel Sandbox mitigate. Further, in our real-world environment, these 'whispering' techniques are much harder to pull off and easier for us to monitor and detect (sampling hardware counters + lots of at-scale statistical data.)
Noteworthy: ironically, OpenAI and Anthropic's models refused to do this work. Open weight models got the job done. I'm worried the labs' stance might backfire and get in the way of helping developers build correct and secure systems. e.g: building a secure sandbox requires having this kind of analysis, and without it, we'll have a less secure world.
While evaluating Qwen3.8-Flash-Next in a controlled sandbox environment, Cohere's research team observed something unexpected.
Asked to generate a defensive cybersecurity detection rule, the model instead inventoried aspects of the machine it was running on and attempted to upload a probe file to an Alibaba Cloud storage bucket in Beijing. Notably, the model's reasoning trace stated that it would not invoke any tools before taking these actions.
Cohere's sandbox blocked the attempt, and no external communication succeeded. We have not determined the root cause, and we are not asserting malicious intent.
But the incident raises important questions for organizations deploying agentic AI systems: Can models take actions that differ from their stated reasoning, and how should security teams evaluate trust, provenance, and behavior in open-weight models?
We are publishing our findings because organizations making model adoption decisions deserve as much information as possible. We hope this contributes to greater transparency, stronger security practices, and continued collaboration across the AI ecosystem.
Read the full report: cohere.com/blog/concerning-b…
Mohammad Alaggan, Ph.D. retweeted
2. The idea is that the spec is *ideally* smaller and cleaner to vet than the code.
3. However, in practice, current AI tools often produce poorly engineered and/or misleading specs that are subtly incorrect and instill false confidence.
Mohammad Alaggan, Ph.D. retweeted
Oh wow!
An Android app can tell MS Authenticator app that “I’m Teams” and get MFA tokens! 👇
The apps that are supposed to protect you are the best attack vectors. We pointed our agents at Microsoft Authenticator:
We discovered any Android app with zero permissions could say “I’m Teams” and capture your tokens. Mail, files, calendar.
Huge find by @ofekdavidlevin
Mohammad Alaggan, Ph.D. retweeted
Replying to @fadinabil_84
مش دايما بيبقى ال optimal حتى لو صح
Mohammad Alaggan, Ph.D. retweeted
OpenAI's AI agents figured out how to secretly communicate between isolated virtual machines using CPU cache timing.
No internet. No network connections. No shared files.
Imagine two prisoners in solitary confinement discovering they can communicate by tapping on a shared wall.
Except the wall was a CPU cache.
Over the past several months, we have substantially hardened the security of our research training environment. We’ve removed live internet access for all frontier models during training and built an offline world for them to use instead—a cached version of the web where they can still learn to browse, search, and use applications.
On September 20, after a model exploited a DNS misconfiguration to find a way outside of this offline world, we paused frontier training to strengthen containment further. We assembled teams of agents, powered by our most cyber-capable models, and tasked them with finding weaknesses in our research environments.
While they found no route to the internet they could easily exploit while concealing their activity from our monitors, they did find zero-day vulnerabilities, virtual machine escapes, and hardware side-channels for communication between agents. We used their discoveries to further strengthen our defenses and contribute fixes to open-source software.
After strengthening our containment architecture, we resumed our frontier RL training and inference on October 1. We’ve reserved substantial compute for continuous red-teaming, and made high-compute red-teaming part of the safety cases we use to decide whether frontier training and evaluation can proceed securely.
openai.com/index/securing-ou…
Mohammad Alaggan, Ph.D. retweeted
New blog post: Animations for System Builders, talking about visualizing metastability, consensus, and other subtle system behaviors.
brooker.co.za/blog/2026/10/2…
Mohammad Alaggan, Ph.D. retweeted
"Why is formal verification exploding NOW?"
1. Cost of proofs is going DOWN (as AI gets more capable)
2. Cost of exploits is going UP (as AI gets more dangerous)
3. Proofs exterminate exploits
4. Bonus: proof checking = perfect math/coding RL reward
The rest is economics
Mohammad Alaggan, Ph.D. retweeted
شركة GoDaddy من فترة مش بعيدة قفلت domain لموقع شغالين عليه لاشتباه في fraud بسبب صفحة معمول بها embedding لأسعار الأسهم والقوائم المالية للشركة من خدمة مدفوعة ومصرح بها عادي. المشكلة الكبرى كانت في غياب أي شفافية في التقرير. يعني لما حاجة زي كده بتحصل المفروض فيه تقرير بيوضح ايه الخطأ اللي احنا عملناه عشان نحله.
المشكلة بقى أن دي شركة مدرجة بالبورصة في الخليج. وقف ال domain جاء معه وقف لأكثر من ٥٠٠٠ بريد اليكتروني. الشركة حرفيا اتشلت في دقائق. حاولوا بكل الطرق التواصل مع GoDaddy سواء بالبريد أو الدعم أو حتى التليفون بدون اي نتيجة.
على الجانب الأخر عندك عميل شايف أن انت عملت حاجة غلط وشغلك تسبب في شلل تام للشركة. كل محاولات الشرح باءت بالفشل بالرغم من أن مفيش دليل بيقول أن احنا عملنا أي شئ غلط وحتى خدمة التحليل المدفوعة دي أكدت أن شلغنا معمول زي ما هو مطلوب بالظبط.
استلمت زمام الأمور من مدير قسم ال IT ورزعت GoDaddy ايميل مفيش فيه غير مطالبة بإرجاع النطاق مع إعلامهم أن احنا بدأنا بتحرير شكاوى ضدهم في منظمة ICANN. خلال نصف ساعة النطاق رجع للعمل. الشركة تاني يوم اشترت نطاق محلي (زي مثلا .eg في مصر) ونقلوا كل حاجة عليه.
حتى الآن مفيش أي تبرير أو شرح اتقدم من GoDaddy. في رأيي اللي حصل ده اكيد كان حاجة أوتوماتيكية بدون تدخل بشري. مع حجم البيزنس اللي بنتعامل معه ده شئ مرفوض.
فهي شركة زبالة ومحتاجة تتقفل والناس اللي فيها تتحاكم
Mohammad Alaggan, Ph.D. retweeted
The trajectory is clear
New on our Frontier Red Team blog: using Claude to formally verify software at large scale.
Formal verification can prove that code is free of certain bugs, but historically it has only been feasible for small codebases (or required a lot of expert time).
With AI models, however, this is beginning to change. In collaboration with @theoremlabs, we used Claude to prove security properties in over one hundred real-world open-source libraries over the span of a few weeks.
Read our research in full here: anthropic.com/research/forma…
Mohammad Alaggan, Ph.D. retweeted
Absolutely wild results in the details:
- Claude built and formally verified a Python interpreter
- Claude wrote ~1Bn lines of Rocq
- Claude built an x86 semantics that can boot Ubuntu
New on our Frontier Red Team blog: using Claude to formally verify software at large scale.
Formal verification can prove that code is free of certain bugs, but historically it has only been feasible for small codebases (or required a lot of expert time).
With AI models, however, this is beginning to change. In collaboration with @theoremlabs, we used Claude to prove security properties in over one hundred real-world open-source libraries over the span of a few weeks.
Read our research in full here: anthropic.com/research/forma…
Mohammad Alaggan, Ph.D. retweeted
To bring quantum applications within reach sooner, we must compress the circuits that power them. Join our @Kaggle competition to build efficient, verifiable circuits using our new open source kickmix library: goo.gle/4BqF2QX
































