All Angles
All Angles
  • Видео 42
  • Просмотров 390 990
Type theory and the algebra of types
#typetheory #algebraicdatatypes #logic
Access exclusive content on Patreon: www.patreon.com/user?u=86649007
Programmers use types to make their job a lot easier. In this video, we construct product types, sum types, and exponential types, and we discover cool connections between types and algebra. No wonder this is called algebraic type theory. And what is Currying? Find out in this video.
If you want to learn more, here are some easy-to-follow references:
[BART 1] ruclips.net/video/LkqTLJK2API/видео.html
A good introduction to algebraic types, by one of the best teachers you can find on this subject.
[SIMPSON 1] www.cbr.com/the-simpsons-main-characters-real-age/
This one should speak for itself...
Просмотров: 7 388

Видео

The soundness and completeness of logic
Просмотров 43 тыс.28 дней назад
#logic #prooftheory #modeltheory #goedel Access exclusive content on Patreon: www.patreon.com/user?u=86649007 All the way at the foundations of mathematics, you will find the language of logic. We look at its syntax and semantics, uncovering two completely different approaches to proving things. One approach is called proof theory. The other approach uses mappings (models) and is called model t...
Characters for non-abelian groups | Representation theory episode 5
Просмотров 1,9 тыс.Месяц назад
Exclusive content on Patreon: www.patreon.com/user?u=86649007 #grouptheory #linearalgebra #matrices #representationtheory #charactertheory When a group does not commute, we can't break it into 1-dimensional pieces, so we end up with larger matrices. We have to use the determinant or the trace of such a matrix to obtain a character. We discover a beautiful connection between conjugates and matri...
What are the characters of a group? | Representation theory episode 4
Просмотров 2,8 тыс.2 месяца назад
Exclusive content on Patreon: www.patreon.com/user?u=86649007 #grouptheory #linearalgebra #matrices #representationtheory #charactertheory A character is simply a homomorphism that maps each group element to a complex number. We look at the trivial charactrer, character tables, complex roots of unity, and the Schur orthogonality relations. There are many interesting connections between characte...
Answering your questions about All Angles
Просмотров 1,2 тыс.2 месяца назад
Exclusive content on Patreon: www.patreon.com/user?u=86649007 When we passed the milestone of ten thousand subscribers some time ago, I gave you an opportunity to ask me your personal and technical questions. Today, you will find out the answers. Who is behind the All Angles videos? How are they produced? We also look at a list of recommended books, so that you can keep exploring the amazing wo...
Irreducible representations (irreps) | Representation theory episode 3
Просмотров 3,1 тыс.3 месяца назад
Exclusive content on Patreon: www.patreon.com/user?u=86649007 #grouptheory #linearalgebra #matrices #representationtheory Matrix representations are one of the most important tools in modern physics. But any given group has infinitely many matrix representations, so we want to organize them by breaking them into smaller pieces. We look at the smallest possible pieces, which are called irreducib...
Matrix representations | Representation theory episode 2
Просмотров 3,3 тыс.4 месяца назад
#grouptheory #linearalgebra #matrices #representationtheory Consider supporting us on Patreon: www.patreon.com/user?u=86649007 . You'll get early access to all videos, and you get to watch exclusive content that will never be published on RUclips. Whether it's classical mechanics or quantum particles, physics makes heavy use of vectors. When a physical system satisfies a set of symmetries, we h...
Complex numbers as matrices | Representation theory episode 1
Просмотров 38 тыс.4 месяца назад
#grouptheory #linearalgebra #matrices #representationtheory #complexnumbers Consider supporting us on Patreon: www.patreon.com/user?u=86649007 You'll get early access to all videos, and you get to watch exclusive content that will never be published on RUclips. How can the complex numbers be represented as matrices? This is an excellent warm-up for more general matrix representations later. We ...
Celebrating 10k subscribers: Ask me anything!
Просмотров 4545 месяцев назад
Access exclusive content on Patreon: www.patreon.com/user?u=86649007 To celebrate our ten thousand subscribers on RUclips, we're organizing an "ask me anything" Q&A. Aks your questions in the comments below, and we will either answer them right there, or in an upcoming video. Thanks again to everyone for supporting our channel! This video is published under a CC Attribution license ( creativeco...
Is the number omega a mathematical oracle?
Просмотров 11 тыс.6 месяцев назад
Access exclusive content on Patreon: www.patreon.com/user?u=86649007 #alanturing #turingmachines #logic #complexity #omega #computerscience #happybirthday In computer science, we study the behavior of programs. One of the central questions is called the halting problem, as formulated by the famous mathematician Alan Turing. Does any given program halt or not? We explore how far we can take this...
What is the Moebius function? #SomePi
Просмотров 25 тыс.7 месяцев назад
Access exclusive content on Patreon: www.patreon.com/user?u=86649007 #numbertheory #moebius #dirichlet #somepi In number theory, the Moebius function allows us to decompose complicated functions into simpler parts. The definition of this function can be difficult to understand, so we flesh it out one step at a time. We start with the Dirichlet convolution, we look at its properties, and finally...
Singular Value Decomposition | Linear algebra episode 9
Просмотров 4,2 тыс.8 месяцев назад
#vectors #linearalgebra #matrices The Singular Value Decomposition is one of the most important algorithms in linear algebra. It looks for the ellipse that is hidden in all linear transformations. The ellipse reveals the most important "directions" of the transformation, so that we can extract the most meaningful concepts from a huge data set. We show how this works for the classification of hu...
Why the political spectrum is useless
Просмотров 2 тыс.8 месяцев назад
#elections #democrats #republicans Exclusive content on Patreon: www.patreon.com/user?u=86649007 Are you on the left or on the right? Maybe you're both, or neither. Politicians like to pretend that we have only 2 options, but our opinions and values are typically much more diverse than that. In this video, I argue that the political spectrum is a useless abstraction, a crude summary of a rich a...
Why are Gauss curves hiding in the Pascal triangle?
Просмотров 1,2 тыс.8 месяцев назад
#combinatorics #pascaltriangle #gausscurve When you measure the shoe sizes of a group of people, you get a distribution known as a Gauss curve. But where exactly does this curve come from? How do we go from genetic factors that determine your shoe size, to a curve that looks like a bell? We also look at the implications for the American presidential elections. To help us make more content, and ...
Eigenvalues and eigenvectors | Linear algebra episode 8
Просмотров 3,8 тыс.9 месяцев назад
#vectors #linearalgebra #matrices #eigenvectors #eigenvalues Exclusive videos on Patreon: www.patreon.com/user?u=86649007 What is an eigenvector? How can we turn an arbitrary matrix into a diagonal one? How can we use this to study the long-term behavior of an ecosystem? In this video, you will learn about diagonals, decoupling, and the eating habits of unicorns. To help us make more content, a...
A change of perspective | Linear algebra episode 7
Просмотров 1,9 тыс.9 месяцев назад
A change of perspective | Linear algebra episode 7
Why is zero to the zero equal to one?
Просмотров 2,7 тыс.9 месяцев назад
Why is zero to the zero equal to one?
Channel update: Representation theory, AI, and more
Просмотров 1,5 тыс.10 месяцев назад
Channel update: Representation theory, AI, and more
How to unify logic & arithmetic
Просмотров 53 тыс.11 месяцев назад
How to unify logic & arithmetic
Groups of matrices | Linear algebra episode 6
Просмотров 2,4 тыс.11 месяцев назад
Groups of matrices | Linear algebra episode 6
Interesting matrix examples | Linear algebra episode 5
Просмотров 1,9 тыс.Год назад
Interesting matrix examples | Linear algebra episode 5
Linear transformations | Linear algebra episode 4
Просмотров 2 тыс.Год назад
Linear transformations | Linear algebra episode 4
The math behind music | Linear algebra episode 3
Просмотров 3,1 тыс.Год назад
The math behind music | Linear algebra episode 3
Lengths, angles, projection, correlation | Linear algebra episode 2
Просмотров 3,6 тыс.Год назад
Lengths, angles, projection, correlation | Linear algebra episode 2
Vector spaces | Linear algebra episode 1
Просмотров 5 тыс.Год назад
Vector spaces | Linear algebra episode 1
Up next: linear algebra!
Просмотров 1,7 тыс.Год назад
Up next: linear algebra!
Morphisms, rings, and fields | Group theory episode 6
Просмотров 3,1 тыс.Год назад
Morphisms, rings, and fields | Group theory episode 6
Commutativity and conjugates | Group theory episode 5
Просмотров 3,8 тыс.Год назад
Commutativity and conjugates | Group theory episode 5
Subgroups, cosets, block structure | Group theory episode 4
Просмотров 3,4 тыс.Год назад
Subgroups, cosets, block structure | Group theory episode 4
How subtraction makes the universe more robust | #SoME3
Просмотров 27 тыс.Год назад
How subtraction makes the universe more robust | #SoME3

Комментарии

  • @jeanchristophe15
    @jeanchristophe15 День назад

    Thank you for making the video! For ring, the multiplication does not form a monoid, because it does not need to have the identity. The unital ring needs to have the identity.

  • @MagicGonads
    @MagicGonads 3 дня назад

    There's some nuance on the double turnstyle (semantic entailment, |=), this A |= B says that *in every model* in which the statement A *evaluates to true*, B also *evaluates to true*. This point was not expressed very clearly in the video (although, words are said to the effect in the video, I don't think it's given due attention or clarity). The issue is with the 'in every model' part, because we need to be clear exactly what a model is; A model is something which associates *statements* in the language with truth values, via rules based on how the model associates *names* in the language with objects, and operators with mappings (discussed further down). Notice, we completely forgot to discuss objects in this video. We only consider something to be a model that has relevant semantics if it corresponds to the formal logic system that we are writing proofs in, which means for each operator in the language which is involved in the inference rules there is a 'fixed interpretation' across all these models, and there are 3 kinds of operator (with different arities- number of arguments): - connective: a symbol that joins *statements* in the language, a mapping from truth values to truth values, which is given by a 'truth table' in the model - relation/predicate: a symbol that joins *terms* in the language, a mapping from a list of *objects* in the model to a truth value in the model - function: a symbol that creates new *terms* in the language, a mapping from a list of *objects* in the model to another *object* in the model For each of these, there are those with fixed interpretations (depending on the exact specifics of the logic system): - connectives: NOT, AND, OR, XOR, IMPL, RIMPL, NAND, NOR, XNOR, ... - relations/predicates: EQUALS, NOT EQUALS, ... - functions: IDENTITY, COMPOSITION, SELECTION, RECURSION, ... So here's where this gets interesting: In predicate logic, we can represent sets by their characteristic relation, also known as a unary predicate, the order of a predicate is based on what sorts of objects it can take as a parameter 0th order: logical propositions, basically names for individual truth values, these have to be nullary as they take no objects. 1st order: objects can be given by names, variables, or function symbols or any combination thereof 2nd order: objects can be the sets which correspond to 1st order predicates, and anything lower ... nth order: objects can be the sets which correspond to (n-1)th order predicates, and anything lower and infinite order: objects can be any nth order It can be shown that 2nd order is as expressive as infinite order, so we basically just have 3 kinds of predicate logic: propositional logic, first order logic (FOL), and predicate logic in general. Soundness is the property of a logic system that A |- B ensures A |= B whereas completeness is that A |= B ensures A |- B Godel actually showed that FOL is complete, not that it is incomplete (the opposite of this video's conclusion) With reference to a logical theory (a collection of statements) T, a 'provable' statement S is one which holds T |- S, whereas a 'valid' statement S is one which holds T |= S (true in every model of T). However, confusingly, Godel also showed that 'Q', called Robinson's arithmetic (which is weaker than Peano Arithmetic, as Q is finitely axiomatised whereas PA needs infinitely many axioms) is incomplete by a different notion of completeness, which refers to the provability of statements within a system, not whether valid statements correspond to provable statements at all. So there is both a Godel's Completeness theorem and a Godel's Incompleteness theorem. But they are actually related. I am not entirely sure about this point, anyone that has more information please let me know, but I think the following is accurate: Even though FOL is complete, predicate logic in general (i.e. 2nd order and up) is not complete, because proofs are 'countably' infinite (since each individual proof is finite) but second order theories concern 'uncountably' infinite objects that are acted upon within the language. Basically, provability first requires constructability (or 'effectivity' or 'decidability') and Godel's incompleteness is an example of a failure in constructability (via diagonal argument).

  • @DonG-1949
    @DonG-1949 3 дня назад

    terrible video

  • @DonG-1949
    @DonG-1949 3 дня назад

    literally all bullshit abstraction

  • @Heinricus
    @Heinricus 3 дня назад

    Thx. I always got stuck when trying to link rotation to euler number. Finally i realized that it's rotated by 1+εi instead of i itself

    • @AllAnglesMath
      @AllAnglesMath 20 часов назад

      Yes 'i' is just the generator of the rotations, but you have to exponentiate it in order to perform the actual rotation.

  • @MsSlash89
    @MsSlash89 4 дня назад

    This is undoubtedly the best introduction to Type Theory on RUclips. My compliments! ❤

  • @jaorlowski
    @jaorlowski 4 дня назад

    I think there is an error in the explanation: exponential functions were with the whole set/vector (i.e. ALL values!) of properties while the combination was multiplication. Which makes sense: if you have colours and fruits and merge it with colours of vegetables you will get the sum of the elements not the product. (given they have the same colours) The exponential operation from 10:00 on is the set of 2-tuples (pairs): - relations of colours from "a" with a full vector of properties of fruits - left hand side element - the relations of a colour from "a" with a full vector of properties of vegetables - right hand side ...equals the number of combinations of colours from "a" with the complete set of properties of fruits AND that of vegetables. The same goes on later with people and properties. I believe you want a triple (person, weight, height). Otherwise we would get the function of all properties and populations. I.e we'd have a mulitverse and each element would be the set of relations like (a strawberry is green AND and Orange is Yellow AND a leek is purple...) so its more like a mux/demux kind of thing

  • @MyXAHOB
    @MyXAHOB 4 дня назад

    good work

  • @MoiraLachesis
    @MoiraLachesis 5 дней назад

    Like with numbers, you can obtain a unit as the exponential of 0. (There is exactly one function to map from the empty type to a fixed arbitrary type). Unlike numbers, the base can also be 0.

    • @AllAnglesMath
      @AllAnglesMath 4 дня назад

      Cool! I never looked at it like that before.

  • @jeanklein2198
    @jeanklein2198 6 дней назад

    Appreciate your content very much 🙏🏼

    • @AllAnglesMath
      @AllAnglesMath 4 дня назад

      Appreciate your comment right back 😉

  • @SimGunther
    @SimGunther 6 дней назад

    The opening note is overly simple. Types wouldn't make _all_ of software development easier. It prevents some bugs, but you still need proper mathematics on the business requirements, which **SURPRISE** isn't all written down in a master compendium that rivals Les Miserables.

  • @dekumarademosater2762
    @dekumarademosater2762 6 дней назад

    Currying _is_ spicy, but it's named after a person.

    • @AllAnglesMath
      @AllAnglesMath 4 дня назад

      I always put lots of Haskell on my chicken.

  • @mistylight3521
    @mistylight3521 6 дней назад

    I think i just don't get it. Like so what? What does it bring to the table? How does it corellate with the real world? I know about the sum types and currying (never used it or have seen somebody use it), but what about the stuff at the end, what's the real world example of that?

    • @dekumarademosater2762
      @dekumarademosater2762 6 дней назад

      anything written in Haskell, Ocaml or any ml variant. Haxe, maybe? They're there, you just have to turn over the right rocks

    • @mistylight3521
      @mistylight3521 5 дней назад

      My bad, I thought we were talking about the real world problems and their solutions

  • @jamieoglethorpe
    @jamieoglethorpe 6 дней назад

    E.W. Dijkstra used the idea of treating a two argument function as a new function with a fixed first function as currying (somebody called Curry, I presume). So currying the two argument Add function with 1 would give you the Incr function, or with -1 to give you Decr.

    • @jamieoglethorpe
      @jamieoglethorpe 6 дней назад

      I posted this comment just before you said the same thing. I left it because it could be of interest.

  • @foobargorch
    @foobargorch 6 дней назад

    wait but a pear is a fruit so how can it contain a fruit

  • @torb-no
    @torb-no 6 дней назад

    I’ve been somwhat interested in abstract algebra (and beyond)’s connection to programming but I never quite managed to grasp it, but the stuff in this video just clicked. So thanks! In which video so hou further explain monoids? I had a tiny bit of group theory at University so I understood the basic defintion at Wikipedia fine, but I’d like to know more. EDIT: found a ‘what is a monoid’ video, I assume it’s that one

  • @Falkov
    @Falkov 6 дней назад

    Planets are oblate spheroids - I don’t think any truly spherical planets exist in the universe. If there are any non-rotating neutron stars, they might be the closest thing to a literally spherical object that might exist. Non-rotating white dwarfs would also be pretty close to perfect sphericity. Minimal magnetic fields and being old and cold would get these hypothetical objects even closer to perfection. A star called KIC 11145123 (AKA Kepler 11145123) has been called the most spherical natural object ever measured..although, as a main-sequence star, it is less spherical than a slowly rotating neutron star. ..so..y’know… ..interesting stuff… ,{^_^}”

  • @RobotProctor
    @RobotProctor 7 дней назад

    I dont get the difference between the unit type and the empty type in your description :/

    • @drdca8263
      @drdca8263 7 дней назад

      It is possible to have a value of type the unit type. There is exactly one such value. It is impossible to have a value with type the empty type.

    • @NovemberIGSnow
      @NovemberIGSnow 7 дней назад

      In addition to what drdca8263 said, you can only ever have a single empty type, but you can have infinitely many unit types. It's just that each unit type only has a single value (hence the name "singleton"). You can have two singletons and use them for different things. If you somehow had multiple empty types, they would all be identical to each other and act the same as each other.

    • @jeejeejee2837
      @jeejeejee2837 6 дней назад

      This is same as concepts of additive and multiplicative identities in abstract algebra. It basically means that result of any binary operation e*a where e is identity, is always a. For example; 0(empty type) is an additive identity in integers because 0+n is always n for all integers n.Similarly 1(or unit type, in context of this video) is multiplicative identity because 1×n is always n(for all integers n). You can extend this to type theory and clearly see that empty type and unit type are identity types that do not modify other types(and/or their values) under specified operations. Hope this clarifies it a little.

  • @C3POtheDragonSlayer
    @C3POtheDragonSlayer 7 дней назад

    Hope to see a video on the calculus of types as a followup!

  • @enricomariadeangelis2130
    @enricomariadeangelis2130 7 дней назад

    Very nice videos for newbies! ❤❤

  • @joeeeee8738
    @joeeeee8738 7 дней назад

    This is basically set theory. I never knew algebra of types existed! I'd like to understand where they start to look different

  • @atreidesson
    @atreidesson 7 дней назад

    No, zero isn't a natural number.

    • @NovemberIGSnow
      @NovemberIGSnow 7 дней назад

      Depends on which mathematician you're talking to. A lot of mathematicians treat 0 as a natural number and if they want to exclude 0 they'll say "the positive natural numbers." Ultimately it doesn't matter, it's all a matter of convention.

    • @atreidesson
      @atreidesson 7 дней назад

      @NovemberIGSnow well, I just said there is the convention because most mathematicians do not consider 0 a natural number

    • @simeondermaats
      @simeondermaats 7 дней назад

      @@atreidesson In Belgium we tend to consider zero a natural number. It's taught this way in most if not all schools.

    • @lietpi
      @lietpi 7 дней назад

      ​@atreidesson look up 100 Questions: A Mathematical Conventions Survey

    • @drdca8263
      @drdca8263 7 дней назад

      @@atreidessonEh? I haven’t checked any surveys, but I find it hard to believe that a substantial majority are on the side of not including it. For the set theorists, I would expect they would use the finite von Neumann ordinals as their standard implementation of the natural numbers. For the algebraists, I would expect they would include zero so that it is a monoid (or a rig if you include the multiplication) not just a semigroup. Only group I would expect might exclude it is the number theorists *maybe*?

  • @DreamzAnimation
    @DreamzAnimation 7 дней назад

    Is there a meaningful distinction between currying and function composition? Or do they mean the same thing, just in different contexts?

    • @NovemberIGSnow
      @NovemberIGSnow 7 дней назад

      Yes. Curried functions return functions. So if Subtract(2) returns a function that subtracts the input from 2, then you can call Subtract(2)(3) and get the result -1. You can also keep the result of Subtract(2) around and invoke that function on multiple other values. This is orthogonal to function composition which is when you pass the result of another function as an input into another function. Like Increment(Square(3)) to get a result of 10. With function composition, the functions are defined independent of each other. Which means you can also swap the order they're applied, like Square(Increment(3)) = 16. You cannot swap the order of curried functions, i.e. you cannot try to get something like Subtract(_)(3) to get a function that subtracts 3 from its input. And because these concepts are orthogonal, you can combine them together: Increment(Subtract(2)(3)) = 0

    • @matchamitminze
      @matchamitminze 7 дней назад

      @@NovemberIGSnow At least re: Subtract(_)(3), you can do some silly shenanigans with something like `flipsub = ($ 3) . flip $ flip subtract`, so that `flipsub 5` yields 2, but I don‘t think I‘d recommend it in a serious context. :)

  • @m4rt_
    @m4rt_ 7 дней назад

    Do note that type theory ignores real world scenarios like when a function only can return 2 out of 3 possible values. In the real world you have to keep the real world in mind, rather than only following what a theoretical world can do. Also, using those constraints you get from a real world scenario, you can often end up with better code, than if you forced yourself to handle impossible scenarios, or scenarios that shouldn't happen.

    • @AllAnglesMath
      @AllAnglesMath 7 дней назад

      The thing is, type theory can only operate on the theoretical level. It doesn't know anything about the actual inputs to the program (i.e. the "real world" you refer to). This is the distinction between static typing and runtime errors.

    • @drdca8263
      @drdca8263 7 дней назад

      Can you give a specific example that dependent types can’t properly address? If you just have products, sums, and exponents, then yeah, definitely there are things such as type system can’t handle. But, dependent types seem like they should be able to handle pretty much anything?

    • @AllAnglesMath
      @AllAnglesMath 6 дней назад

      @@drdca8263 I'm not familiar with dependent types. The only 2 cents I can contribute, is that a static type system can never handle "everything". That would make type checking undecidable, which is not very useful.

    • @drdca8263
      @drdca8263 6 дней назад

      @@AllAnglesMath If you know how your program is supposed to behave, you should (usually, unless not knowing is kind of the point) know whether each part halts, and be able to prove it. The type checking with dependent types, at least if you include like, equality types etc., should allow checking a proof that whatever parts should halt, do. I believe such a type system (which is equivalent to some fairly powerful axiom system, though of course incompleteness does apply as Gödel showed) should be able to check any well-defined property that one would reasonably hope for it to check, provided that you are willing to make your program effectively include the proof.

  • @m4rt_
    @m4rt_ 7 дней назад

    Sum types are also useful when making a parser: struct Token { enum { TOK_INTEGER, TOK_,FLOAT, TOK_IDENT, TOK_KEYWORD /* ... */ } kind; union { struct { uint64_t value, bool signed } _integer; double _float; char* _string; enum { KW_FUNCTION, KW_STRUCT, KW_ENUM, KW_UNION, KW_IMPORT /* ... */ } _keyword; }; };

  • @EvanMildenberger
    @EvanMildenberger 7 дней назад

    15:00 The bottom two rules allows you to simplify programs: a pair of functions to the same codomain can be merged into one by getting the disjoint union of the two domains and doing some pattern matching internally. That allows you to have less functions at the tradeoff of their domain/codomains being more complicated. And a function that has a structured input can be changed to a chain of composed functions that process each field of the product type sequentially. That allows you to have more functions where each one can focus on just part of the original value.

  • @EvanMildenberger
    @EvanMildenberger 7 дней назад

    7:20 An interesting aside is that the exponential 2^3=8 is for all *possible* functions of the `from Fruit to Bool` type. The example shown in the top is a specific function from that general type even though it's programming type signature would also be Fruit -> Bool. The general vs specific function distinction was confusing to me in the past.

  • @morgengabe1
    @morgengabe1 8 дней назад

    2:10 Sugar, Spice, everything nice, armpit hair, snails, a puppy dog tail, and chemical X.

    • @jursamaj
      @jursamaj 7 дней назад

      Chemical X is only if you want a Power Puff girl. There are other recipes for other types of people. 😁

    • @morgengabe1
      @morgengabe1 7 дней назад

      @@jursamaj are the rowdy ruff boys merely a joke to you?

    • @jursamaj
      @jursamaj 7 дней назад

      @@morgengabe1 Ah, I see. Never saw those episodes.

  • @user-qu2bp8zt6f
    @user-qu2bp8zt6f 8 дней назад

    a

  • @GamingMouse
    @GamingMouse 8 дней назад

    Is there a way to make a one time donation without subscribing? These videos are _excellent_.

    • @AllAnglesMath
      @AllAnglesMath 7 дней назад

      What you can always do is set up a Patreon account, and then after a few days cancel it again. Your account will be valid for an entire month, which gives you plenty of time to watch the exclusive videos.

  • @peeledbanana311
    @peeledbanana311 8 дней назад

    Presupposition 1: Logical systems that rely on presuppositions are technically not "closed" and therefore not complete. Presupposition 2: All logical systems rely on presuppositions. Claim: Most logic systems are not complete 🫷 ❌ Rebuttal: Most logic systems are not built on imperceptible-selection-bias presuppositions. ☝✅

  • @nokkel6935
    @nokkel6935 8 дней назад

    I love how concise and intelligible your videos about these somewhat obscure and mysterious subjects are. Looking foreward to the category theory one :)

  • @Schnep
    @Schnep 8 дней назад

    I've actively been trying to understand these concepts for so long now, but after seeing this, it finally feels like it "clicked". Fantastic job!

  • @kevon217
    @kevon217 8 дней назад

    this was super helpful. made a lot of sense

  • @simeondermaats
    @simeondermaats 8 дней назад

    ahhh, the subject of my bachelor paper and (if all goes well) my master's thesis as well ❤❤ great to see you do a video on type theory!!

  • @MaxPicAxe
    @MaxPicAxe 8 дней назад

    Love this video!!!

  • @MaxPicAxe
    @MaxPicAxe 8 дней назад

    1:42 Cartesian* :P

    • @AllAnglesMath
      @AllAnglesMath 7 дней назад

      Yeah, you're right, I don't know why I keep spelling that incorrectly.

  • @DeathSugar
    @DeathSugar 8 дней назад

    i wonder if we will wonder in the proof assistant world with that

  • @05degrees
    @05degrees 8 дней назад

    Yesh! Great polynomial intro into type math! 🎷🎻 Also add in one of future videos that an empty type is useful as: - a marker of a place in the code which shouldn’t be reachable, or a function that doesn’t return; - an empty error additive means no error can ever happen, if we write generic code that’s agnostic about specific error types and wish to use it with error-less functions; - a quirk to type only empty data structures: List<0> can contain just an empty list. Likewise 1 is useful in generic data structures to add no other information where some could’ve been provided and (ideally) occupy 0 extra bytes of memory. No wonder that “trivial values” get extremely useful in generic context, as it’s the case in math overall and why they were devised, more or less, historically (but more so now when we know better why we want them to exist!).

  • @hemerythrin
    @hemerythrin 8 дней назад

    5:15 "please note that this is very different from returning a pair, which would always contain a number *and* an error" If only someone had shown this to the inventors of the Go language

    • @DeathSugar
      @DeathSugar 8 дней назад

      considering they just made generics recently it's pretty descent way to return errors as values.

    • @EvanMildenberger
      @EvanMildenberger 7 дней назад

      *Rust's Result type has entered the chat*

    • @DeathSugar
      @DeathSugar 7 дней назад

      @ in go

    • @NStripleseven
      @NStripleseven 5 дней назад

      @@EvanMildenbergerreal and based

  • @APaleDot
    @APaleDot 8 дней назад

    I never knew you could do algebra with types. This is amazing!

    • @05degrees
      @05degrees 8 дней назад

      You can even do some black magic with solving equations about inductive types, like trees or lists, for example “seven trees in one” allows packaging any binary tree into seven and vice versa, any 7-tuple of binary trees of the same type into a single one, uniformly; but you can’t do that with e.g. five trees! due to an equation the type satisfies. But it’s early for that yet. And later it appears that wasn’t magic but it surely feels like one anyway. Simple algebra is useful too, for example for automatically deriving generic recursion schemas on any inductive type that uses just sums and products (though some form of exponentials can be carefully allowed too), for example Haskell allows writing code for doing that. Though I seem to find now usually another scheme is used, defining both the type and its associated _functor_ (which is like the type itself but with blanks in place of recursive occurrences of the same type in its definition) manually to your desires and then linking them, instead of deriving one from another and using clunky wrappers. Well, this application is probably not the clearest one, it just came to my mind first.

  • @monsterhunter8595
    @monsterhunter8595 8 дней назад

    Lesssgoooo a type theory video!🎉

  • @santerisatama5409
    @santerisatama5409 8 дней назад

    If we can choose axioms freely, they cease to be proper axioms (ie. self-evident truths) and become ex falso arguments leading to the logical Explosion.

  • @GodbornNoven
    @GodbornNoven 9 дней назад

    This doesn't mean much since you can expand the set of axioms that constitute a system, that creates more holes but less holes overall compared to the new syntactic rules you can create, so the "holes" will be less common within the system, as it is more and more complete. Even though absolute completeness is likely impossible. But even then, we can always rely on physics like meta mathematical reasoning (reasoning about the system itself) to know these statements are true, but we would only be unable to prove it is true.

    • @GodbornNoven
      @GodbornNoven 9 дней назад

      Btw imo absolute completeness is possible but a system would be absolutely useless mathematically because absolute completeness would have to imply not making any self referential statements, aka statements about the system itself.you can make a system so absolutely weak that it doesn't make unprovable statements or holes but then it wouldn't be useful. practical completeness is possible but absolutely completeness is not

  • @bowlineobama
    @bowlineobama 9 дней назад

    I totally disagree that sqrt of ab not equal to sqrt of "a" times sqrt of "b". That's because you are not considering the phase shifts. There are RUclips videos showing that. Check them out.

    • @AllAnglesMath
      @AllAnglesMath 8 дней назад

      Do you have a good link to one of these videos?

  • @Moeman-mf5yq
    @Moeman-mf5yq 11 дней назад

    2:38: Any group can be represented by permutation matrices. This statement is only valid for finite groups (see Cayleys theorem) and compact groups (Peter-Weyl Theorem).

    • @AllAnglesMath
      @AllAnglesMath 8 дней назад

      I hadn't considered infinite groups. Thanks for the correction!

  • @busbymath
    @busbymath 11 дней назад

    neat

  • @FortranCastle
    @FortranCastle 13 дней назад

    This is so wonderful!!

  • @idontcare2508
    @idontcare2508 13 дней назад

    I have somewhat a fear of mathematics and cannot for sure tell you what 1001*10 is within 30 seconds on pressure, but everything in here was put so perfectly clear, simple and the and visualisations are superb! RUclips algorithm as well as people like you will save humanity.

  • @nospamman4443
    @nospamman4443 15 дней назад

    You should have followed with an example on a completeness statement that isn't syntactically true. It would help to reinforce the implications of the entire video.