RebeccaHarris

743 posts

RebeccaHarris banner
RebeccaHarris

RebeccaHarris

@colunaprestess

I'm the best programmer on earth, that's why God chose me, and he gave me divine intellect, this is divine fucking intellect, isn't it obvious?

Katılım Ağustos 2021
55 Takip Edilen6 Takipçiler
RebeccaHarris retweetledi
Etlândia
Etlândia@Etlandia_TV·
vc tem 90 minutos pra parar com isso bellingham
Etlândia tweet media
Português
24
1.5K
12.9K
96.8K
RebeccaHarris retweetledi
Bic Müller 
Bic Müller @bicmuller·
Meu Deus que castigo assistir jogo da Argentina na Cazé. Os caras são muito lambe saco do Messi, num guento
Português
828
5.3K
38.7K
510K
RebeccaHarris retweetledi
Baptista Miranda
Baptista Miranda@Baptistamiran·
Argentina vs Suíça Meu palpite é que, aconteça o que acontecer, o árbitro vai sair mais famoso que alguém em campo.
Português
19
121
2.5K
24.3K
RebeccaHarris retweetledi
Garry Kasparov
Garry Kasparov@Kasparov63·
The English goalie hit his own player and a Norwegian player got the yellow card. FIFA innovation!
English
875
1K
16.6K
638.2K
RebeccaHarris retweetledi
Night Sky Today
Night Sky Today@NightSkyToday·
JUST IN🚨: Korean Scientists Create ‘INVISIBLE SOLAR PANELS’ That Allow Windows To Generate Electricity.
Night Sky Today tweet mediaNight Sky Today tweet media
English
395
4.1K
34K
3.7M
RebeccaHarris retweetledi
Bruno Farias Psicólogo
Bruno Farias Psicólogo@FariasPsicologo·
"Apanhei e não Morri" Mas ontem um menino de 3 anos foi ESPANCADO pelo pai por não ter dado "Bom Dia" Ele não resistiu 😢 Bater sempre mata Se não matar a vida Mata a autoestima, mata o amor próprio, a autoconfiança, mata a bondade e inocência Pelo fim da cultura da violência
Português
81
8.4K
41.1K
326.6K
RebeccaHarris retweetledi
Baptista Miranda
Baptista Miranda@Baptistamiran·
Ainda estou esperando um jornalista olhar para o Messi e perguntar: Qual é a sua posição sobre os episódios de racismo envolvendo a seleção argentina? Parece uma pergunta normal.
Português
437
6.4K
83.8K
770.4K
RebeccaHarris retweetledi
samuel
samuel@samuelzxis·
Essa mãe mostrando que todo dia ela tira a coberta e todo dia é uma posição diferente das suas filhas gêmeas dormindo 😂
Português
67
575
14.2K
310.5K
RebeccaHarris retweetledi
Garry Kasparov
Garry Kasparov@Kasparov63·
Incredible Egyptian goal is disallowed because of a foul far away, then same situation a few minutes later and goal for Argentina not disallowed! No VAR, nothing? FIFA again looks like a corrupt joke, playing favorites for stars.
English
6.3K
56.3K
290.7K
7.6M
RebeccaHarris retweetledi
Taelin
Taelin@VictorTaelin·
@RobertHaisfield programming language nearly as fast a C nearly as parallel as CUDA safer than Rust Lean-like proof system JS-like closures = Bend2
English
20
18
571
26.8K
RebeccaHarris retweetledi
Taelin
Taelin@VictorTaelin·
Fable 5 proved Bend2's consistency in Lean! Bend2 is an unorthodox proof assistant, because it includes "dangerous" features, like unrestricted recursive types, and type-in-type. These features are very useful for programming, as they allow one to write fast interpreters, cleaner abstractions, and more. But they're also infamous for causing paradoxes that would break a proof assistant like Lean, and once broke mathematics itself: - Curry's paradox: "If this sentence is true, then anything follows." - Russell's paradox: "The set of all sets contains itself." The mere presence of these features allow paradoxical statements to be proven, rendering the proof assistant untrustworthy. That's why Lean, Rocq, Agda, Idris and others ban these features, and most type theorists believe they're *inherently* inconsistent. As I've always pointed out, this is not true, and, today, this fact is mathematically checked in Lean. "Wait, Type:Type isn't inconsistent? Why?" Because consistency isn't an isolated property of a feature, it stems from the interaction between different features. Something can be dangerous in a system, yet harmless in other. Bend admits type-in-type and recursive-types by paying a different price: runtime closures cannot be duplicated. This is precisely what allows Bend to be nearly as fast as C, and as parallel as CUDA. But, as a nice bonus, it also allows it to have these features, without breaking consistency. When I talk about this, I'm faced with lots of skepticism from type theorists, and no amount of explaining makes them concede. So, I took the time to formalize Bend in Lean, write down the key properties I wanted to prove (subject reduction, normalization, consistency), plus an informal English argument. I then passed this file to Fable agents which, nearly a day (and several dollars) later, completed a sorry-free Lean file that passes the checker and validates my claims. This doesn't mean the job is done. For example, if Lean itself is inconsistent, then this proof is moot. More likely, there could be a typo on my formalization, or a mismatch between it and the actual implementation. That said, this is a massive step forward, and a strong validation. Next time someone asks, rather than answering with long explanations or "trust me bro", I can ask them to read a tiny Lean file. (The spec itself is tiny, Fable's proof is massive, but one only needs to read the spec, as Lean verified the proof.)
Taelin tweet media
Taelin@VictorTaelin

*sighs* it is already depressing enough that most of you can't understand my posts, but not being able to distinguish them from some technically illiterate SF CEO who thinks they'd proven quantum physics or some shit is another level of stupid problem is, when I write too technically, it tends to just flop, which is why I have to resort to these "AI good!" and "AI bad!" posts that, I admit, may sound a bit over-excited sometimes. that said, the proof is simple enough to be explainable in a way you all can appreciate, so, I'll give it a shot. with you, in its full glory, how Fable contributed to Bend's consistency proof, why it was incredible and, yes, very valid first: consistency is basically a word that means: "can we trust this language to formalize mathematics?". or, equivalently, can someone prove a false statement in it? imagine if someone found a proof of 2+2 = 5 in Lean. that person would be able to use this falsehood to perform arbitrary type-level rewrites, and, thus, prove any theorem (like riemann's hypothesis!) trivially, in a few lines of code. that wouldn't net them $1 million, but it would make for a legendary issue on Lean's GitHub, immediately invalidating any proof checked by Lean and undermining the language's credibility. I obviously don't want that to happen to Bend2 fortunately, the techniques for constructing a consistent proof system are well known, even though details vary case by case. it usually involves two main parts: first, prove it is sound (i.e., that evaluating an expression can't change this type). honestly, that's just the "show us your implementation is not hopelessly buggy". it is the easy part. the second part is much more difficult: "prove every well typed program in your language terminates" this is necessary because infinite loops allow one to encode "paradoxes" (like "this sentence is false") and, to explain it in a very silly way, these paradoxes "confuse" the type checker, and allow you to prove falsehoods. so, if I want people to trust Bend as a proof language, I must be able to convince them there's no way to express an infinite loop in it. programs like "while (true)" must be, somehow, banned by our compiler. but how? the way most proof assistants (like Lean) do it is to 1. not have loops to begin with, 2. ban any kind of non-structural recursion. that means that, to call a function recursively, you must ensure that arguments are getting smaller. that's fairly standard, and fairly easy to do. so, is that it? unfortunately, that's not enough, because, in functional languages, there's another way for infinite loops to manifest: self-replicating λ-terms. for example, consider the following Python program: evil = (lambda f: f(f))(lambda f: f(f)) print evil it hangs forever, even though it has no loops and no recursion. turns out it is very easy to accidentally let some variation of "evil" to creep in, and "evil" allows one to prove falsehoods. for example, if the set of all sets contains itself, you can summon evil via Girard's paradox. and if you allow recursive datatypes to store functions, then, you can summon evil via Curry's paradox: data Evil { bad(f : Evil -> Evil) } // this would break Lean! that problem is not exclusive to proof languages. a similar paradox once caused a crisis in mathematics itself! in 1901, Russel proposed a legendary proof of a false statement in naive set theory, which was THE foundation of mathematics back then. the news was that math itself was broken, and every proof ever written by humanity would to be untrusted. crazy times! of course, this has since been "patched". today, we call it "naive" set theory for a reason! but this shows how hard it is to design a consistent proof system. humanity failed to do so for millenniums! in Rocq, Lean and Agda, the way they avoid these self-replicating λ's is via a series of "patches" - i.e., human engineered antibodies to kill the paradoxes we found in the past. for example, the 'Evil' datatype above is syntactically forbidden by disabling certain shapes of recursive datatypes ("positivity checker"), and Girard's paradox is avoided by having an infinite universe of types ("universe hierarchy"). this disables the "does the set of all sets contain itself" paradox, which, in turn, disables the `evil = λf.f(f) λf.f(f)` summoned by it. this is all solid and stablished, and people are very confident Lean and others are trustworthy. that said - and that's where I tend to change things - I argue that's overkill. while these restrictions indeed avoid paradoxes, they're also very strict, and ban perfectly valid programs. for example, it is impossible to write a fast interpreter (i.e., via HOAS) in these, and alternatives (like PHOAS) are very contrived. this makes these languages substantially less practical. Bend aims to be a proof language that is also viable as a real world programming language, so, it is of my interest to find more permissive termination argument. and that's what I was working on, with the help of Fable my argument goes like this: first, only allow recursion when arguments decrease. so far, this is the same approach used by Lean and others, nothing new here. now, we must find a way to avoid self-replicating λ-terms (like `λf.f(f) λf.f(f)`) from creeping in. that's where we detour. instead of positivity checker and universe hierarchies, I simply re-use a feature of Quantitative Type Theory (QTT) - which, in short, is an industry standard way to have O(1) arrays in an FP lang, and which Bend *already implements* - to forbid non-linear lambdas. In other words, in Bend, lambdas must be used linearly, and, thus, cannot be cloned, and that's enforced by the already existing QTT system. this simple addition is sufficient to prevent all incarnations of `evil = λf.f(f) λf.f(f)` in one strike, cutting the evil in the bud, and ensuring Bend is terminating, as it easily exhausts every known way to introduce non-termination: - infinite loops → there are no loops - infinite recursion → only allow decreasing recursion - self-duplicating λ-terms → lambdas can't be cloned from termination, consistency follows easily. and that's it. this is *obviously* correct and so easy I'm sure even you're confident you can't write infinite loops in Bend. aren't you? now, I must be very clear here. these are all *my* design choices. I didn't ask an AI "pls build a consistent proof language" and then got flattered into thinking I'm a genius. I studied the subject 10 fucking years and used AI to aid me materialize and double check my ideas. this is the antidote I found to AI psychosis. I call it "competency" that said, if the solutions are mine, how Fable helped here? well, the argument per se is obviously sound, and nobody serious would contest it. the problem is that implementing a proof assistant is hard, and it is easy to introduce accidental bugs that detour from the intended semantics. turns out the way that Bend2 wasn't faithful to my intention, for a reason that is legitimately hard to see, and that Fable identified never the less. QTT, as described in the original paper, allowed "relaxing" its checks a bit on certain places of the code. this is important for usability, and harmless to proof languages that use QTT (like Idris2), because they don't rely on QTT for termination. but Bend2 does, and these relaxed checks allowed lambdas to be cloned in some circumstances. Fable read my termination argument, studied the QTT paper, audited the implementation, and found that inconsistency, handing me a proof of Falsehood! full proof below ↓ that was Fable's contribution, and, if you can't see how incredible this is, I don't know what could possibly impress you. as for the solution, Fable proposed a few. all bad. my fix was to split Type in two sorts: one for arbitrary types, and other for lower order values. this lets me have the relaxed checks on positions where lambdas cannot occur, while still ensuring lambdas cannot be cloned and, therefore, self replicate. this is the "elegant proof" I mentioned in the post below!

English
38
44
812
51.4K
RebeccaHarris retweetledi
Ryan
Ryan@ryanspfc7·
NA MORAL MLK EU NÃO CONSIGO TANKAR ESSA MUSICA DO MBAPPE KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK OS CARAS SÃO BONS DEMAIS KYLIAN, DITADOR.
Português
220
3.4K
27.7K
883.7K
RebeccaHarris retweetledi
cat
cat@a_musingcat·
it’s crazy how students run distillation attacks on their teachers and nobody does anything to stop it
English
38
164
4K
161K
RebeccaHarris
RebeccaHarris@colunaprestess·
Somos todos cabo verde
Español
0
0
0
11