Kindelia Foundation is a Nonprofit Organization (NPO) in which one of its goals is to support and maintain the Kindelia ecosystem, while also allocating resources to help projects and researching related technologies.
We, just like you, are part of the Kindelia community.
Minor update, but: ADTs & Match on Kind2 done!
This is by far the hardest part of Kind2, because we need to convert high-level datatypes and pattern-matches into self-λ-encodings, including dependent-type wizardry like index families and so on. There are so many small details that can bug very hard, specially if you make the mistake of using explicit substitutions (which we thankfully don't!).
Also, for us, this desugaring has the extra added difficulty of linearizing variables into branches, which is important for theorem proving (to specialize context types w.r.t. the matched value) and evaluation (to avoid clones/fan-nodes on HVM). That said, this is MUCH simpler than a native datatype system would be, and expressive unification on core simplifies it a little bit more.
Yes this is not anything new or exciting in a startup sense (I mean, Coq exists since the 80's), but the choice of building our main language upon strong theoretical foundations will pay off, specially once we can hide its complexity while still enjoying its benefits. Kind2's codebase is just sooo clean and well-structured right now. Finally getting to a state where I feel comfortable bootstrapping a long-term ecosystem. And all right on schedule (feeling kinda proud of this, ngl). Let's go 🥳
Kind2's bootstrap is complete!
AND IT'S THE WORST CODE I'VE EVER WRITTEN!
We're talking about 1000+ lines of mostly repetitive, fully inlined λ-encoded algorithms. A colossal functional beast that go as far as eyes can see. And, the most impressive part: it type-checks!
But why?
Because it is a complete implementation of a proof assistant in itself. And, since "itself" stands for "the raw calculus of constructions", that means there aren't many abstractions available to make it shorter. It is kinda like "to make an apple pie from scratch, you must first invent the universe". Literally, the only features available are lambdas and applications... so it is actually quite a miracle we got to make an entire proof assistant out of that.
Of course, this is a temporary, intermediate step of a bootstrapping process. As Kind2 gains more features, these will be used to deflate it's own implementation. For example, there are about 600 lines-worth of constructors and constructor-specific ifs, which will all be eliminated once the language supports a proper datatype/match notation. But, for now, and during a brief period of time, you can see, enjoy and be amused by one of the worst best files I've ever written.
Permalink: https://t.co/QS4n63H1W1
Today has been an exciting day of progress on ITT - which I'm now renaming to Interaction Calculus of Constructions (ICC).
The most compelling aspect of ICC is how simple, yet powerful, it is. The current implementation is less than 100 lines on HVM, making it much smaller than the Calculus of Constructions, and probably the simplest proof checker in the world. Yet, despite its simplicity, the ICC is extremely powerful. By using its only type former, the bridge (`θx T`), we can derive not just CoC's dependent function type (`Π(x: A) B[x]`), but many other types not available in it, like inductive functions, quotients and so on. Here are some examples:
// Simple Function. Syntax: !A -> B
Fun = λA λB θf λx {(f {x: A}): B}
// Dependent Function. Syntax: Π(x: A) B[x]
All = λA λB θf λx {(f {x: A}): (B x)}
// Inductive Function. Syntax: $f(x: A) B[f,x]
Ind = λA λB θf λx {(f {x: A}): (B f x)}
// Dependent Pair. Syntax: Σ(x: A) B[x]
Sig = λA λB θp {(p {p.0: A} {p.1: (B p.0)})}
If you thought self types were powerful, bridges are a generalization of it - and of everything else. And the way they work is very intuitive; if you read the code above carefully, you'll probably get it. I now believe most of the limitations found in CoC, such as no inductive datatypes, can be traced down to it lacking bridges, which are an universal type encoder, of which pi types are just a special instance.
I've finally hacked an initial checker for ICC in the repository below:
https://t.co/jtE4MynbP1
Note that the implementation is still very new and incomplete, but you can already try it on the demo terms available on the `book/` directory. In special, notice how Pi types are encoded with θ, and how we can also easily do `Bool.match` (i.e., induction) with it.
I can't stress enough how this isn't something engineered, but discovered. Nothing of this system was invented or hardcoded by me. Annotators and bridges are just interaction combinator nodes, and the only computation rules are the standard interactions: annihilation and commutation.
I believe this system is something fundamental of mathematics, and generalizes many type theories. Of course, there is much to be done before it can be taken seriously. At least, now it is sufficiently concrete for us to start formalizing in an existing proof assistant, and to prove the standard theorems such as soundness, completeness and consistency. From there, we can proceed to explore its expressivity, and better understand its properties.
(Bridges were previously called ANN-Binder. They were identified by Franchu, upon trying to find an interpretation for the main-port readback of ANN nodes.)
(This is also the most important code I've ever written, topping parallel HVM and whatnot. Not many will immediately understand (or agree!), but, if my intuition is right, this, on inets, should be the basis for an automated reasoning tool I'm working on.)
HVM talk at @gambiconf - University of São Paulo (USP)
https://t.co/dHmji8s8Zv
Includes everything you need to know in a simple and pedagogic way, assuming only basic programming background. English subs. Let me know if you have any question!
HVM is becoming the world's fastest λ-calculator! For a perspective, let's perform a Radix Sort on a Scott Tree with millions of ints, vs state-of-art runtimes:
JavaScript (V8): 29.081s
Haskell (GHC): 11.073s
Kind (HVM): 2.514s
How is that possible? See below ↓
HVM Core and Lang main branches updated with multi-core mode! That means you can clone the repo and start playing with the parallel runtime today. Keep in mind this is a demo: expect broken things a lot of short-term instability.
Full announcement, from https://t.co/ErPEdGTXa9:
MASSIVE BREAKTHROUGH
After committing the fast-deref experiment, I've immediately realized how I could leverage it to interleave HVM's runtime with compiled procedures. I quickly, manually compiled a sample.
Result: 35X SPEEDUP.
That's 5.5 BILLION RPS in a SINGLE CORE. (...)
People need to understand that making things run faster is not about running things that exist faster, it is about making it possible to run things that do not exist
We're still looking for a top-tier CUDA developer to help us maintain and polish the upcoming HVM GPU runtime, keeping it in sync with the Rust reference. Current code at:
https://t.co/Qrx1rqdYli
Full time, 100% remote, top pay. If you know anyone please share.
After almost 10 years of exhaustive research, nights without sleep, I've finally completed my ultimate work and can now reveal my real motives. With you...
A Lock-Free Interaction Combinator Evaluator...
To Fix League of Legends' Client Performance
https://t.co/dBJD9XcKDu
Looking for top CUDA talents to help us polish, optimize and maintain HVM2's new GPU runtime. High pay.
This baby: https://t.co/XhLHkDPi5Y
DM on. Please spread!
For the curious: just finished the V1. Insane atomics orchestration. Completely lock-free. And it works! 🔥▲
Took @VictorTaelin’s awesome experiments around compressing GPT prompts and built CompressGPT. A one-line change in your @langchain code => 70% token usage deduction!
https://t.co/P3wuFEb2P2
Interaction Nets are the optimal model of computation and will inevitably replace CPUs, GPUs and the Von Neumann architecture. Do you agree? If so, HOC raised a seed round and we're looking for highly competent and passionate partners to join our founding team. Interested? DM me.
Pitch deck: https://t.co/mFtPnk0AFT
Initial roadmap: https://t.co/FgXM5mgWQW
Tech overview: https://t.co/90Zj3oO27v
As for myself, I'm an eager builder that won't rest until HOC becomes largest tech company in the world. This is just the beginning. Let's go!
HOC is a tech startup that will build the massively parallel future of computing through the power of Interaction Nets, a promising alternative model of computation. To learn more about us, check the links below:
HOC will be closing the seed round tomorrow. We've been raising for 3 weeks. Love meeting new people, but can't lie all these meetings are driving me crazy! Soon we'll start hiring and go on full Taelin mode. Expect me reporting progress in a breathtaking pace every day soon!
Hey I'm looking for a really talented Rust developer with experience in threaded computing and low-level assembly optimizations to work with me on the HVM:
https://t.co/3p4Ctb7f6R
Competitive salary. DM me! Retweet & spread please <3