@elliot.website This seems like your type of thing.
Source code: github.com/varkor/quiver
proofassistants.stackexchange.com/q/4526
It's a cool way to use canonicity to give *conservativity* results: a bunch of stuff to add to your logic without making it less trustworthy.
This is one of the first applications of canonicity!
proofassistants.stackexchange.com/q/4526
It's a cool way to use canonicity to give *conservativity* results: a bunch of stuff to add to your logic without making it less trustworthy.
This is one of the first applications of canonicity!
chrishenson.net/posts/2024-1...
chrishenson.net/posts/2024-1...
Nothing too notable, except for being one of the days with a visual element that sometimes generates a bit of controversy.
Nothing too notable, except for being one of the days with a visual element that sometimes generates a bit of controversy.
Just some algebra today. I spent a while fiddling with Diophantine equations, I was disappointed they weren't needed.
Just some algebra today. I spent a while fiddling with Diophantine equations, I was disappointed they weren't needed.
One day lag here because I really got into this problem! I defined memoization as a state monad, along with a memoized map function that folds a hashmap over a list.
One day lag here because I really got into this problem! I defined memoization as a state monad, along with a memoized map function that folds a hashmap over a list.
Very straightforward, not much to say. One of those days where part two was one a one line change from part one.
Very straightforward, not much to say. One of those days where part two was one a one line change from part one.
Nothing conceptually difficult, but lots of bookkeeping here that took a while to get right and could probably be a bit cleaner.
Nothing conceptually difficult, but lots of bookkeeping here that took a while to get right and could probably be a bit cleaner.
Just some mildly tedious slope calculations today. I'll be curious to see more clever solutions than mine.
I left one partial def because it was tedious to prove that a line stays bounded in a square, will likely revisit that later.
Just some mildly tedious slope calculations today. I'll be curious to see more clever solutions than mine.
I left one partial def because it was tedious to prove that a line stays bounded in a square, will likely revisit that later.
A little slow (takes ~40s for both parts), but I think that this is because there is not an extern base 10 logarithm and me not being too careful with how I generate combinations. Otherwise a pretty straightforward day.
- Metaprogramming Systems (macros, user-scheduling)
- Type systems (Graded modal, dependent, substructural)
- Program logics (hoare, incorrectness)
What else?
- Metaprogramming Systems (macros, user-scheduling)
- Type systems (Graded modal, dependent, substructural)
- Program logics (hoare, incorrectness)
What else?
A little slow (takes ~40s for both parts), but I think that this is because there is not an extern base 10 logarithm and me not being too careful with how I generate combinations. Otherwise a pretty straightforward day.
A little slow (takes ~40s for both parts), but I think that this is because there is not an extern base 10 logarithm and me not being too careful with how I generate combinations. Otherwise a pretty straightforward day.
First day that required a smidge of optimization. A typo in part 1 wasted a lot of time. I actually solved it by hand first! I did a bit of a hack for part 2 because properly counting duplicate states seemed like a hassle.
First day that required a smidge of optimization. A typo in part 1 wasted a lot of time. I actually solved it by hand first! I did a bit of a hack for part 2 because properly counting duplicate states seemed like a hassle.
One of my favorite days so far, came out very cleanly. Having quicksort in the language is nice. I enjoyed writing the function to get the middle of an Array with a provably correct index, though ran into some decidable equality trickiness.
One of my favorite days so far, came out very cleanly. Having quicksort in the language is nice. I enjoyed writing the function to get the middle of an Array with a provably correct index, though ran into some decidable equality trickiness.
I just used a list of lists as a matrix as opposed to something dependently typed, though I did ensure all indexing was checked at least.
For part one, I was pretty happy with my method of getting all diagonals.
I just used a list of lists as a matrix as opposed to something dependently typed, though I did ensure all indexing was checked at least.
For part one, I was pretty happy with my method of getting all diagonals.
It is redundant with the actual monadic parsing, but I played around a bit with the regex package today. Pretty painless experience, I was pleasantly surprised. Not much else of note.
It is redundant with the actual monadic parsing, but I played around a bit with the regex package today. Pretty painless experience, I was pleasantly surprised. Not much else of note.
bsky.app/profile/did:...
bsky.app/profile/did:...
Still early days, not too interesting. `List.eraseIdx` worked well for the part 2. I though about doing removals from the diff list instead of the original (then adjusting by the removed diff), but it's so quick that I didn't bother.
Still early days, not too interesting. `List.eraseIdx` worked well for the part 2. I though about doing removals from the diff list instead of the original (then adjusting by the removed diff), but it's so quick that I didn't bother.
www.haskellforall.com/2024/11/the-...
#Haskell
www.haskellforall.com/2024/11/the-...
#Haskell