Scala, кажется, определяет 3 вида утверждений: assert, require и assume.
Насколько я понимаю, разница (по сравнению с общим утверждением) require заключается в том, что она специально предназначена для проверки входов (аргументов, входящих сообщений и т.д.). И каков смысл assume then?