| ▲ | captainmuon 4 hours ago | |||||||
Well, yeah, you have code contracts in Ada or Spec#, (very limited) fixed type ranges in Pascal, ... but no general purpose programming language lets you put an arbitrary expression in the same language in a type as a permanent condition, or lets you state facts that the compiler will prove. Of course not, that would be equivalent to solving the halting problem, many people will say. I wonder if that will change now: I'm happy with an imperfect sanitizer that I run every now and then and will run a couple of minutes and come back with: I've proved your conditions, I proved a violation, or I can't decide, please change your code. | ||||||||
| ▲ | IsTom 4 hours ago | parent [-] | |||||||
> no general purpose programming language lets you put an arbitrary expression in the same language in a type as a permanent condition, or lets you state facts that the compiler will prove Lean can be used as a regular programming language. There's also languages like idris2 and f-star, but they don't seem to have much traction. | ||||||||
| ||||||||