"Type-Driven Program Synthesis" by Nadia Polikarpova

Поділитися
Вставка
  • Опубліковано 3 січ 2025

КОМЕНТАРІ • 14

  • @mariusraducan1348
    @mariusraducan1348 6 років тому +8

    Great talk! On a side note, this is probably the most advanced work on General Artificial Intelligence so far."Type-Driven Program Synthesis" is obviously the right path. Let the people from machine learning do they deep neural network stuff, their will never get it :)

    • @alonzoc537
      @alonzoc537 5 років тому +2

      Yeh I am looking at merging this with Optimal Ordered Problem Solver so you could exploit old solutions and do meta-searches. Looks promising

    • @cynocephalusw
      @cynocephalusw 4 роки тому

      Agree. DNA and RNA work with refinement types. Methylation is a „epigenetic“ refinement.

  • @timh.6872
    @timh.6872 6 років тому +18

    I'm not so sure the "let there be instagram" future is as inconceivable as she thinks. Sure there's the essential complexity of describing what "instagram" is (and is not), but scaling is just an optimization problem.
    For example, the (quite impressive) negation normal form function was a specific case of a structure-preserving transformation between two related Initial Algebras (the recursive types and the measure). Functional programs are an initial algebra, C++ programs are an initial algebra, and machine executable programs are an initial algebra. Statically and dynamically linked libraries are a collection of members of an initial algebra. Compilation and optimization is thus a structure-preserving map between initial algrbras that minimizes resource utilization.
    Even scarier for the mathematicians in the room, these algebraic refinement types are an initial algebra. Synthesis itself is something of a structure preserving map between initial algebras.
    This is good stuff.

  • @EvanMildenberger
    @EvanMildenberger 25 днів тому

    25:06 It seems like the second De Morgan law here is incorrectly shown since the OR inside the right parens should flip to an AND symbol when the negation distributes over `b OR c` to become `not b and not c`.

  • @kubamigda3336
    @kubamigda3336 4 місяці тому

    Great talk, cheers

  • @TheSunscratch
    @TheSunscratch 6 років тому +2

    Awesome talk!

  • @nirgle
    @nirgle 6 років тому +4

    Great talk!

  • @samhughes1747
    @samhughes1747 3 роки тому

    Geez. Just watched this twice, and I'm gonna be recommending the living frick out of this. Even if it's not directly and broadly applicable, it's still a fantastic pattern.

  • @srghma
    @srghma 4 роки тому +3

    generation is very similar to idris 2

  • @malkdk
    @malkdk 6 років тому +1

    13:07 I don’t understand this. Looks to me like you’re comparing a single element of a list (the head) with an entire list. How is that operation defined? I mean, “v” covers several elements in “t”, so how can we compare “v” to “h”? I guess it would make sense to just compare “h” with the head element of “v”, but I’m not sure if that’s how it’s done.

    • @LiamGoodacre
      @LiamGoodacre 5 років тому

      Ignore `t` here, it is irrelevant in thinking about what `v` is.
      The refinement `{ v:a | h

  • @alexanderskladovski
    @alexanderskladovski 4 роки тому +1

    Is Haskell the pinnacle of creation? 😁😁😁

  • @henrituhola
    @henrituhola 6 років тому +2

    Oh. It's a logic programming language that saves the proof.