Изображение:Pvs tree.png
Материал из eSyr's wiki.
(Различия между версиями)
Размер при предпросмотре: 407 × 600 пикселов
Изображение в более высоком разрешении (1687 × 2485 пикселов, размер файла: 246 КБ, MIME-тип: image/png)
(Автор: Василий Мерзляков.) |
|||
(8 промежуточных версий не показаны.) | |||
Строка 1: | Строка 1: | ||
- | Автор: | + | Автор: Игорь Бронштейн. |
+ | |||
+ | Исходный dot-файл: | ||
+ | <pre> | ||
+ | digraph PVSTree { | ||
+ | "node0" [ | ||
+ | label = "{ |[1] FORALL (i : nat) : (i \> 7) IMPLIES EXIST (t : nat, f : nat) : i = 3 * t + 5 * f}" | ||
+ | shape = "record" | ||
+ | ] | ||
+ | "node1" [ | ||
+ | label = "(induct \"i\")" | ||
+ | ] | ||
+ | "node0" -> "node1" | ||
+ | "node2" [ | ||
+ | label = "{ |[1] (0 \> 7) IMPLIES EXIST (t : nat, f : nat) : 0 = 3 * t + 5 * f}" | ||
+ | shape = "record" | ||
+ | ] | ||
+ | "node1" -> "node2" [label = "базис индукции"] | ||
+ | "node3" [ | ||
+ | label = "(flatten 1)" | ||
+ | ] | ||
+ | "node2" -> "node3" | ||
+ | "node4" [ | ||
+ | label = "{[-1] 0 \> 7|[1] EXIST (t : nat, f : nat) : 0 = 3 * t + 5 * f}" | ||
+ | shape = "record" | ||
+ | ] | ||
+ | "node3" -> "node4" | ||
+ | "node7" [ | ||
+ | label = "(assert)" | ||
+ | style = "filled" | ||
+ | fillcolor = "green" | ||
+ | ] | ||
+ | "node4" -> "node7" | ||
+ | "node8" [ | ||
+ | label = "{ |[1] FORALL (j : nat) :\n(j \> 7) IMPLIES EXIST (t : nat, f : nat) : j = 3 * t + 5 * f\nIMPLIES\n(j + 1 \> 7) IMPLIES EXIST (t : nat, f : nat) : j + 1 = 3 * t + 5 * f}" | ||
+ | shape = "record" | ||
+ | ] | ||
+ | "node1" -> "node8" [label = "индуктивный переход"] | ||
+ | "node9" [ | ||
+ | label = "(skolem! 1)" | ||
+ | ] | ||
+ | "node8" -> "node9" | ||
+ | "node10" [ | ||
+ | label = "{ |[1] (j!1 \> 7) IMPLIES EXIST (t : nat, f : nat) : j!1 = 3 * t + 5 * f\nIMPLIES\n(j!1 + 1 \> 7) IMPLIES EXIST (t : nat, f : nat) : j!1 + 1 = 3 * t + 5 * f}" | ||
+ | shape = "record" | ||
+ | ] | ||
+ | "node9" -> "node10" | ||
+ | "node11" [ | ||
+ | label = "(flatten 1)" | ||
+ | ] | ||
+ | "node10" -> "node11" | ||
+ | "node12" [ | ||
+ | label = "{[-1] (j!1 \> 7) IMPLIES EXIST (t : nat, f : nat) : j!1 = 3 * t + 5 * f|[1] (j!1 + 1 \> 7) IMPLIES EXIST (t : nat, f : nat) : j!1 + 1 = 3 * t + 5 * f}" | ||
+ | shape = "record" | ||
+ | ] | ||
+ | "node11" -> "node12" | ||
+ | "node13" [ | ||
+ | label = "(flatten 1)" | ||
+ | ] | ||
+ | "node12" -> "node13" | ||
+ | "node14" [ | ||
+ | label = "{[-1] j!1 + 1 \> 7\n[-2] (j!1 \> 7) IMPLIES EXIST (t : nat, f : nat) : j!1 = 3 * t + 5 * f|[1] EXIST (t : nat, f : nat) : j!1 + 1 = 3 * t + 5 * f}" | ||
+ | shape = "record" | ||
+ | ] | ||
+ | "node13" -> "node14" | ||
+ | "node15" [ | ||
+ | label = "(split -2)" | ||
+ | ] | ||
+ | "node14" -> "node15" | ||
+ | "node16" [ | ||
+ | label = "{[-1] EXIST (t : nat, f : nat) : j!1 = 3 * t + 5 * f\n[-2] j!1 + 1 \> 7|[1] EXIST (t : nat, f : nat) : j!1 + 1 = 3 * t + 5 * f}" | ||
+ | shape = "record" | ||
+ | ] | ||
+ | "node15" -> "node16" [label = "следствие в антецеденты"] | ||
+ | "node17" [ | ||
+ | label = "(skolem! -1)" | ||
+ | ] | ||
+ | "node16" -> "node17" | ||
+ | "node18" [ | ||
+ | label = "{[-1] j!1 = 3 * t!1 + 5 * f!1\n[-2] j!1 + 1 \> 7|[1] EXIST (t : nat, f : nat) : j!1 + 1 = 3 * t + 5 * f}" | ||
+ | shape = "record" | ||
+ | ] | ||
+ | "node17" -> "node18" | ||
+ | "node19" [ | ||
+ | label = "(case \"f!1 = 0\")" | ||
+ | ] | ||
+ | "node18" -> "node19" | ||
+ | "node20" [ | ||
+ | label = "{[-1] f!1 = 0\n[-2] j!1 = 3 * t!1 + 5 * f!1\n[-3] j!1 + 1 \> 7|[1] EXIST (t : nat, f : nat) : j!1 + 1 = 3 * t + 5 * f}" | ||
+ | shape = "record" | ||
+ | ] | ||
+ | "node19" -> "node20" | ||
+ | "node21" [ | ||
+ | label = "(inst 1 \"t!1 - 3\" \"2\")" | ||
+ | ] | ||
+ | "node20" -> "node21" | ||
+ | "node22" [ | ||
+ | label = "{[-1] f!1 = 0\n[-2] j!1 = 3 * t!1 + 5 * f!1\n[-3] j!1 + 1 \> 7|[1] j!1 + 1 = 3 * (t!1 - 3) + 5 * 2}" | ||
+ | shape = "record" | ||
+ | ] | ||
+ | "node21" -> "node22" | ||
+ | "node23" [ | ||
+ | label = "(replace -1)" | ||
+ | ] | ||
+ | "node22" -> "node23" | ||
+ | "node24" [ | ||
+ | label = "{[-1] j!1 = 3 * t!1 + 5 * 0\n[-2] j!1 + 1 \> 7|[1] j!1 + 1 = 3 * (t!1 - 3) + 5 * 2}" | ||
+ | shape = "record" | ||
+ | ] | ||
+ | "node23" -> "node24" | ||
+ | "node25" [ | ||
+ | label = "(assert)" | ||
+ | style = "filled" | ||
+ | fillcolor = "green" | ||
+ | ] | ||
+ | "node24" -> "node25" | ||
+ | "node26" [ | ||
+ | label = "{[-1] f!1 = 0\n[-2] j!1 = 3 * t!1 + 5 * f!1\n[-3] j!1 + 1 \> 7|[1] t!1 - 3 \>= 0}" | ||
+ | shape = "record" | ||
+ | ] | ||
+ | "node21" -> "node26" | ||
+ | "node27" [ | ||
+ | label = "(replace -1)" | ||
+ | ] | ||
+ | "node26" -> "node27" | ||
+ | "node28" [ | ||
+ | label = "{[-1] j!1 = 3 * t!1 + 5 * 0\n[-2] j!1 + 1 \> 7|[1] t!1 - 3 \>= 0}" | ||
+ | shape = "record" | ||
+ | ] | ||
+ | "node27" -> "node28" | ||
+ | "node29" [ | ||
+ | label = "(assert)" | ||
+ | style = "filled" | ||
+ | fillcolor = "green" | ||
+ | ] | ||
+ | "node28" -> "node29" | ||
+ | "node30" [ | ||
+ | label = "{[-1] j!1 = 3 * t!1 + 5 * f!1\n[-2] j!1 + 1 \> 7|[1] f!1 = 0\n[2] EXIST (t : nat, f : nat) : j!1 + 1 = 3 * t + 5 * f}" | ||
+ | shape = "record" | ||
+ | ] | ||
+ | "node19" -> "node30" | ||
+ | "node31" [ | ||
+ | label = "(inst 2 \"t!1 + 2\" \"f!1 - 1\")" | ||
+ | ] | ||
+ | "node30" -> "node31" | ||
+ | "node32" [ | ||
+ | label = "{[-1] j!1 = 3 * t!1 + 5 * f!1\n[-2] j!1 + 1 \> 7|[1] j!1 + 1 = 3 * (t!1 + 2) + 5 * (f!1 - 1)\n[2] f!1 = 0}" | ||
+ | shape = "record" | ||
+ | ] | ||
+ | "node31" -> "node32" | ||
+ | "node33" [ | ||
+ | label = "(assert)" | ||
+ | style = "filled" | ||
+ | fillcolor = "green" | ||
+ | ] | ||
+ | "node32" -> "node33" | ||
+ | "node34" [ | ||
+ | label = "{[-1] j!1 = 3 * t!1 + 5 * f!1\n[-2] j!1 + 1 \> 7|[1] f!1 - 1 \>= 0\n[2] f!1 = 0}" | ||
+ | shape = "record" | ||
+ | ] | ||
+ | "node31" -> "node34" | ||
+ | "node35" [ | ||
+ | label = "(assert)" | ||
+ | style = "filled" | ||
+ | fillcolor = "green" | ||
+ | ] | ||
+ | "node34" -> "node35" | ||
+ | "node36" [ | ||
+ | label = "{[-1] j!1 + 1 \> 7|[1] j!1 \> 7\n[2] EXIST (t : nat, f : nat) : j!1 + 1 = 3 * t + 5 * f}" | ||
+ | shape = "record" | ||
+ | ] | ||
+ | "node15" -> "node36" [label = "посылку в консеквенты"] | ||
+ | "node37" [ | ||
+ | label = "(case \"j!1 = 7\")" | ||
+ | ] | ||
+ | "node36" -> "node37" | ||
+ | "node38" [ | ||
+ | label = "{[-1] j!1 = 7\n[-2] j!1 + 1 \> 7|[1] j!1 \> 7\n[2] EXIST (t : nat, f : nat) : j!1 + 1 = 3 * t + 5 * f}" | ||
+ | shape = "record" | ||
+ | ] | ||
+ | "node37" -> "node38" | ||
+ | "node39" [ | ||
+ | label = "(inst 2 \"1\" \"1\")" | ||
+ | ] | ||
+ | "node38" -> "node39" | ||
+ | "node40" [ | ||
+ | label = "{[-1] j!1 = 7\n[-2] j!1 + 1 \> 7|[1] j!1 \> 7\n[2] j!1 + 1 = 3 * 1 + 5 * 1}" | ||
+ | shape = "record" | ||
+ | ] | ||
+ | "node39" -> "node40" | ||
+ | "node41" [ | ||
+ | label = "(assert)" | ||
+ | style = "filled" | ||
+ | fillcolor = "green" | ||
+ | ] | ||
+ | "node40" -> "node41" | ||
+ | "node42" [ | ||
+ | label = "{[-1] j!1 + 1 \> 7|[1] j!1 = 7\n[2] j!1 \> 7\n[3] EXIST (t : nat, f : nat) : j!1 + 1 = 3 * t + 5 * f}" | ||
+ | shape = "record" | ||
+ | ] | ||
+ | "node37" -> "node42" | ||
+ | "node43" [ | ||
+ | label = "(assert)" | ||
+ | style = "filled" | ||
+ | fillcolor = "green" | ||
+ | ] | ||
+ | "node42" -> "node43" | ||
+ | } | ||
+ | </pre> |
Текущая версия
Автор: Игорь Бронштейн.
Исходный dot-файл:
digraph PVSTree { "node0" [ label = "{ |[1] FORALL (i : nat) : (i \> 7) IMPLIES EXIST (t : nat, f : nat) : i = 3 * t + 5 * f}" shape = "record" ] "node1" [ label = "(induct \"i\")" ] "node0" -> "node1" "node2" [ label = "{ |[1] (0 \> 7) IMPLIES EXIST (t : nat, f : nat) : 0 = 3 * t + 5 * f}" shape = "record" ] "node1" -> "node2" [label = "базис индукции"] "node3" [ label = "(flatten 1)" ] "node2" -> "node3" "node4" [ label = "{[-1] 0 \> 7|[1] EXIST (t : nat, f : nat) : 0 = 3 * t + 5 * f}" shape = "record" ] "node3" -> "node4" "node7" [ label = "(assert)" style = "filled" fillcolor = "green" ] "node4" -> "node7" "node8" [ label = "{ |[1] FORALL (j : nat) :\n(j \> 7) IMPLIES EXIST (t : nat, f : nat) : j = 3 * t + 5 * f\nIMPLIES\n(j + 1 \> 7) IMPLIES EXIST (t : nat, f : nat) : j + 1 = 3 * t + 5 * f}" shape = "record" ] "node1" -> "node8" [label = "индуктивный переход"] "node9" [ label = "(skolem! 1)" ] "node8" -> "node9" "node10" [ label = "{ |[1] (j!1 \> 7) IMPLIES EXIST (t : nat, f : nat) : j!1 = 3 * t + 5 * f\nIMPLIES\n(j!1 + 1 \> 7) IMPLIES EXIST (t : nat, f : nat) : j!1 + 1 = 3 * t + 5 * f}" shape = "record" ] "node9" -> "node10" "node11" [ label = "(flatten 1)" ] "node10" -> "node11" "node12" [ label = "{[-1] (j!1 \> 7) IMPLIES EXIST (t : nat, f : nat) : j!1 = 3 * t + 5 * f|[1] (j!1 + 1 \> 7) IMPLIES EXIST (t : nat, f : nat) : j!1 + 1 = 3 * t + 5 * f}" shape = "record" ] "node11" -> "node12" "node13" [ label = "(flatten 1)" ] "node12" -> "node13" "node14" [ label = "{[-1] j!1 + 1 \> 7\n[-2] (j!1 \> 7) IMPLIES EXIST (t : nat, f : nat) : j!1 = 3 * t + 5 * f|[1] EXIST (t : nat, f : nat) : j!1 + 1 = 3 * t + 5 * f}" shape = "record" ] "node13" -> "node14" "node15" [ label = "(split -2)" ] "node14" -> "node15" "node16" [ label = "{[-1] EXIST (t : nat, f : nat) : j!1 = 3 * t + 5 * f\n[-2] j!1 + 1 \> 7|[1] EXIST (t : nat, f : nat) : j!1 + 1 = 3 * t + 5 * f}" shape = "record" ] "node15" -> "node16" [label = "следствие в антецеденты"] "node17" [ label = "(skolem! -1)" ] "node16" -> "node17" "node18" [ label = "{[-1] j!1 = 3 * t!1 + 5 * f!1\n[-2] j!1 + 1 \> 7|[1] EXIST (t : nat, f : nat) : j!1 + 1 = 3 * t + 5 * f}" shape = "record" ] "node17" -> "node18" "node19" [ label = "(case \"f!1 = 0\")" ] "node18" -> "node19" "node20" [ label = "{[-1] f!1 = 0\n[-2] j!1 = 3 * t!1 + 5 * f!1\n[-3] j!1 + 1 \> 7|[1] EXIST (t : nat, f : nat) : j!1 + 1 = 3 * t + 5 * f}" shape = "record" ] "node19" -> "node20" "node21" [ label = "(inst 1 \"t!1 - 3\" \"2\")" ] "node20" -> "node21" "node22" [ label = "{[-1] f!1 = 0\n[-2] j!1 = 3 * t!1 + 5 * f!1\n[-3] j!1 + 1 \> 7|[1] j!1 + 1 = 3 * (t!1 - 3) + 5 * 2}" shape = "record" ] "node21" -> "node22" "node23" [ label = "(replace -1)" ] "node22" -> "node23" "node24" [ label = "{[-1] j!1 = 3 * t!1 + 5 * 0\n[-2] j!1 + 1 \> 7|[1] j!1 + 1 = 3 * (t!1 - 3) + 5 * 2}" shape = "record" ] "node23" -> "node24" "node25" [ label = "(assert)" style = "filled" fillcolor = "green" ] "node24" -> "node25" "node26" [ label = "{[-1] f!1 = 0\n[-2] j!1 = 3 * t!1 + 5 * f!1\n[-3] j!1 + 1 \> 7|[1] t!1 - 3 \>= 0}" shape = "record" ] "node21" -> "node26" "node27" [ label = "(replace -1)" ] "node26" -> "node27" "node28" [ label = "{[-1] j!1 = 3 * t!1 + 5 * 0\n[-2] j!1 + 1 \> 7|[1] t!1 - 3 \>= 0}" shape = "record" ] "node27" -> "node28" "node29" [ label = "(assert)" style = "filled" fillcolor = "green" ] "node28" -> "node29" "node30" [ label = "{[-1] j!1 = 3 * t!1 + 5 * f!1\n[-2] j!1 + 1 \> 7|[1] f!1 = 0\n[2] EXIST (t : nat, f : nat) : j!1 + 1 = 3 * t + 5 * f}" shape = "record" ] "node19" -> "node30" "node31" [ label = "(inst 2 \"t!1 + 2\" \"f!1 - 1\")" ] "node30" -> "node31" "node32" [ label = "{[-1] j!1 = 3 * t!1 + 5 * f!1\n[-2] j!1 + 1 \> 7|[1] j!1 + 1 = 3 * (t!1 + 2) + 5 * (f!1 - 1)\n[2] f!1 = 0}" shape = "record" ] "node31" -> "node32" "node33" [ label = "(assert)" style = "filled" fillcolor = "green" ] "node32" -> "node33" "node34" [ label = "{[-1] j!1 = 3 * t!1 + 5 * f!1\n[-2] j!1 + 1 \> 7|[1] f!1 - 1 \>= 0\n[2] f!1 = 0}" shape = "record" ] "node31" -> "node34" "node35" [ label = "(assert)" style = "filled" fillcolor = "green" ] "node34" -> "node35" "node36" [ label = "{[-1] j!1 + 1 \> 7|[1] j!1 \> 7\n[2] EXIST (t : nat, f : nat) : j!1 + 1 = 3 * t + 5 * f}" shape = "record" ] "node15" -> "node36" [label = "посылку в консеквенты"] "node37" [ label = "(case \"j!1 = 7\")" ] "node36" -> "node37" "node38" [ label = "{[-1] j!1 = 7\n[-2] j!1 + 1 \> 7|[1] j!1 \> 7\n[2] EXIST (t : nat, f : nat) : j!1 + 1 = 3 * t + 5 * f}" shape = "record" ] "node37" -> "node38" "node39" [ label = "(inst 2 \"1\" \"1\")" ] "node38" -> "node39" "node40" [ label = "{[-1] j!1 = 7\n[-2] j!1 + 1 \> 7|[1] j!1 \> 7\n[2] j!1 + 1 = 3 * 1 + 5 * 1}" shape = "record" ] "node39" -> "node40" "node41" [ label = "(assert)" style = "filled" fillcolor = "green" ] "node40" -> "node41" "node42" [ label = "{[-1] j!1 + 1 \> 7|[1] j!1 = 7\n[2] j!1 \> 7\n[3] EXIST (t : nat, f : nat) : j!1 + 1 = 3 * t + 5 * f}" shape = "record" ] "node37" -> "node42" "node43" [ label = "(assert)" style = "filled" fillcolor = "green" ] "node42" -> "node43" }
История файла
Нажмите на дату, чтобы просмотреть как тогда выглядел файл.
Дата/время | Участник | Размеры | Размер файлы | Примечание | |
---|---|---|---|---|---|
(текущая) | 20:48, 14 января 2009 | Bronikkk (Обсуждение | вклад) | 1687 × 2485 | 246 КБ | |
17:06, 7 декабря 2008 | Bronikkk (Обсуждение | вклад) | 1687 × 2485 | 246 КБ | Автор: Игорь Бронштейн | |
17:00, 7 декабря 2008 | Bronikkk (Обсуждение | вклад) | 1687 × 2485 | 245 КБ | Владелец: Игорь Бронштейн | |
16:41, 6 декабря 2008 | Bronikkk (Обсуждение | вклад) | 1687 × 2485 | 244 КБ | ||
03:23, 5 декабря 2008 | ESyr01 (Обсуждение | вклад) | 1708 × 2531 | 248 КБ | Автор: Василий Мерзляков. |
- Редактировать этот файл, используя внешнюю программу
Подробности см. на странице Meta:Help:External_editors.
Ссылки
Следующие страницы ссылаются на данный файл: