Recreating logic in type theory — LessWrong