| Let me rephrase then... >all mathematical proofs are algorithms All mathematical proofs consist of a series of steps. >all types are algorithms All types can be expressed as a series of steps -- with a given input -- and an output of True or False following those steps. True if the given input is a member of that Type. False if a given input is not a member of that Type. If the definition of an 'Algorithm' -- is 'a series of steps', then both mathematical proofs and types -- must be Algorithms... If we have any debate -- then we are debating the semantics of "what constitutes a step" -- what rigorously defines it -- and what steps may be permitted when... It may very well be that the Lambda Calculus is the best definition of what constitutes these steps -- but it may very well be that there is a different/better paradigm for looking at them (I don't know myself -- I am trying to determine this)... Here, you might like the following video (graciously submitted by rbonvall!) for an overview of some of the different possible paradigms that these steps -- might be considered in: https://www.youtube.com/watch?v=IOiZatlZtGU |
No, this is a fundamental misunderstanding of what types are. They're not, in general, subsets of some larger universe of values, and you can't have terms without types attached. (Of course there are "gradually typed" programming languages, but these are really languages with a top type a la `object`, subtyping, and generally a healthy dose of unsoundness).