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.
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/
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/