Нет времени объяснять, переходим сразу к делу.
Доказывать теоремы мы будем, используя интерактивные пруверы Isabelle или Lean 3. Примеры приводятся для каждого прувера, для решения задач же можно использовать любой из них.
-- Addition | |
theorem add_comm : ∀ (n m : Int), n + m = m + n := by | |
intro n m | |
simp [HAdd.hAdd, Add.add] | |
match n, m with | |
| Int.ofNat m, Int.ofNat n => | |
simp [Int.add] | |
apply Nat.add_comm |
#print List | |
/- | |
inductive List A where | |
| nil : List A | |
| cons : A -> List A -> List A | |
-/ | |
/- |
namespace ADTs | |
/- | |
In the game we have two banks of a river: left and right, | |
and four characters: a wolf, a goat, a cabbage, and a farmer. | |
The farmer prevents abybody from eathing anything, otherweise | |
the wolf eats the goat, or the goat eats the cabbage. | |
The game starts with all the characters on the left bank and | |
the goal is to move everyone to the right bank safe and sound. | |
The farmer can carry a single other character at a time |
theory LogEquiv | |
imports Main | |
begin | |
(* NOTATION: | |
In Isabelle/HOL we write ‹(A x)› instead of ‹A(x)› | |
and ‹∀x. (P x)› instead of ‹∀x: P(x)› | |
*) | |
lemma "¬(∃x.∀y. (A x) ∧ ¬(B y)) ⟷ (∀x.∃y. (A x) ⟶ (B y))" | |
by blast (* Isabelle/HOL can prove this statement automatically all by itself which proves the statement is correct. *) |
theory IndGen | |
imports Main | |
begin | |
(* From "Exercises on Generalizing the Induction Hypothesis" by James Wilcox | |
https://jamesrwilcox.com/InductionExercises.html | |
*) | |
section ‹Summing lists› |
<!DOCTYPE html> | |
<html lang="en"> | |
<head> | |
<meta charset="utf-8"/> | |
<title>GPU.js ray marching</title> | |
<script src="gpu-browser.js"></script> | |
</head> | |
<body> | |
<button id="render">Render!</button> | |
<p>Render:</p> |
<!DOCTYPE html> | |
<html lang="en"> | |
<head> | |
<meta charset="utf-8"/> | |
<title>GPU.js — blur</title> | |
<script src="gpu-browser.min.js"></script> | |
</head> | |
<body> | |
<input id="image" type="file" accept="image/*"> | |
<p>Original:</p> |
Лично у меня сильный прогресс в английском связан с 3 вещами.
В 7 классе отец заставил меня выписывать английские слова на карточки и учить их. Очень эффективный способ пополнения и поддержания словарного запаса. Теперь для этого принято использовать Anki, хотя я в своё время карточки вырезал из ватмана. :)
В 10-11 классах у нас была очень крутая учительница английского — строго требовала и не стеснялась ставить двойки. Выдала распечатанную табличку со схемами образования разных времён глаголов — лучшее руководство, которое я видел. Жаль, что табличка куда-то потерялась.
Примерно тогда же начал читать книжки на английском. Сначала адаптированные, для чтения в 6-8-10 классе, потом и неадаптированные почитывал. Главное — книги прочитывать. Словарь не обязателен, необязательно понимать 100% текста, можно понимать меньше половины. Если оказалось сильно непонятно &mdash можно тут же начать читать книгу заново, будет намного понятнее, можно сильно незнакомые слова в словаре посмотреть
#! /usr/bin/env Rscript | |
input_con <- file("stdin") | |
open(input_con) | |
prevLine <- "" | |
while (length(curLine <- readLines(con = input_con, | |
n = 1, | |
warn = FALSE)) > 0) { | |
if (length(grep("^/home/[^:]+:$", curLine)) > 0) { |