Formal methods are a cool way to verify that your hardware or software is working as intended™

Z3 is a one stop shop for FM with theorem proving, SAT, SMT, and computer algebra capabilities.

Let's look at some fun examples

👇

1/6
A nice usage is constraint solving for non-linear polynomial equations.

2/6
It can prove theorems or provide counter-examples!

3/6
Need to write a package manager and are pulling your hair out from dependency management? Don't worry!

Just create two simple functions that calculate dependencies and conflicts and solve!

This showcases that you can verify many arbitrary software behaviours as well.

4/6
It works with numpy! Here's an example solving an inverse kinematics equation for robotics!!

5/6
And the grand finalé! In just a few lines of code you can solve the infamous 8-queens problem by setting row, column, and diagonal constraints and aggregating them together before solving.

6/6

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Andrew Carr

Andrew Carr Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @andrew_n_carr

19 Mar
I'm super excited to share our work on self-supervised learning for audio. We extend the permutation pre-text task by using differentiable ranking and show improved performance on low-resource tasks (it also works great on images and video)

1/ Image
When using permutations in pretraining, a subset of permutations are used to train a classifier which predicts permutations as classes.

However, since there are n! different permutations of length n, it's not feasible to use any reasonable fraction of them for classes.

2/
We fix this problem by using a differentiable ranking objective which allows arbitrary permutations to be used.

By increasing the number of usable permutations, we find improved representations are learned which can be used on downstream tasks.

3/
Read 5 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!

:(