Qual é o significado de uma suposição em scala em comparação com uma afirmaçã

Scala parece definir 3 tipos de afirmações:assert, require eassume.

Até onde eu entendi, a diferença (em comparação com uma afirmação genérica) derequire é especificamente para verificar entradas (argumentos, mensagens recebidas etc.). E qual é o significado deassume então

questionAnswers(3)

yourAnswerToTheQuestion