Size: a a a

2020 August 24

CD

Constantine Drozdov in rust_offtopic
если реверс выдаст пустой ответ, то любая использующая функция сломается на любом тесте
источник

CD

Constantine Drozdov in rust_offtopic
если реверс это id аналогично
источник

p

polunin.ai in rust_offtopic
Emmanuel Goldstein
Реверс списков каждый доказать может, а ты мне перемножение матриц докажи
Ну там будет лемма вида
foo: (a: Vect n (Vect m elem)) -> (b: Vect m (Vect n elem)) -> (x: Nat) -> (y: Nat) -> LessThan n y -> LessThan m x -> { res: multiply a b } -> res[x][y] = ... --Забыл как там матрицы перемножаются
источник

EG

Emmanuel Goldstein in rust_offtopic
polunin.ai
Ну там будет лемма вида
foo: (a: Vect n (Vect m elem)) -> (b: Vect m (Vect n elem)) -> (x: Nat) -> (y: Nat) -> LessThan n y -> LessThan m x -> { res: multiply a b } -> res[x][y] = ... --Забыл как там матрицы перемножаются
То есть тупо перепечатка исходного кода?
источник

EG

Emmanuel Goldstein in rust_offtopic
А почему ты не учитываешь вероятность, что ты тупо допустишь ту же самую ошибку в доказательстве?
источник

CD

Constantine Drozdov in rust_offtopic
Emmanuel Goldstein
То есть тупо перепечатка исходного кода?
Да, мы же доказываем соответствие определению
источник

EG

Emmanuel Goldstein in rust_offtopic
И у тебя будет доказательство с ошибкой успешно доказывать, что ты перемножаешь матрицы с ошибкой.
источник

CD

Constantine Drozdov in rust_offtopic
Если исходный код был определение, то это его точная копия
источник

p

polunin.ai in rust_offtopic
Emmanuel Goldstein
То есть тупо перепечатка исходного кода?
Где? Тут гораздо больше информации чем в исходном коде.
источник

EG

Emmanuel Goldstein in rust_offtopic
Пока не вижу
источник

EG

Emmanuel Goldstein in rust_offtopic
Пока вижу функцию для умножения матриц
источник

p

polunin.ai in rust_offtopic
Emmanuel Goldstein
А почему ты не учитываешь вероятность, что ты тупо допустишь ту же самую ошибку в доказательстве?
s/доказательстве/тесте/
источник

CD

Constantine Drozdov in rust_offtopic
polunin.ai
Где? Тут гораздо больше информации чем в исходном коде.
Ты хочешь доказать соответствие функции-определения чему-то
источник

EG

Emmanuel Goldstein in rust_offtopic
polunin.ai
s/доказательстве/тесте/
Потому что ты тестируешь не функцию, а поведение крупным планом.
источник

p

polunin.ai in rust_offtopic
Emmanuel Goldstein
Пока вижу функцию для умножения матриц
Как минимум здесь есть информация о размерах матрицы
источник

CD

Constantine Drozdov in rust_offtopic
polunin.ai
s/доказательстве/тесте/
Тест будет не такой
источник

CD

Constantine Drozdov in rust_offtopic
Тест будет для случайного x верно (AB)x = A(Bx)
источник

EG

Emmanuel Goldstein in rust_offtopic
polunin.ai
Как минимум здесь есть информация о размерах матрицы
В самой функции эта информация тоже есть, очевидно, мы ж на идрисе пишем
источник

EG

Emmanuel Goldstein in rust_offtopic
Так что она сама по себе принимает и возвращает векторы
источник

EG

Emmanuel Goldstein in rust_offtopic
Вот векторы это, кстати, хороший пример, где типы скорее помогают, чем мешают
источник