diff --git a/apps/web/src/lib/components/katex.svelte b/apps/web/src/lib/components/katex.svelte
new file mode 100644
index 0000000..c2c3e48
--- /dev/null
+++ b/apps/web/src/lib/components/katex.svelte
@@ -0,0 +1,20 @@
+
+
+
+ {@html katexString}
+
diff --git a/apps/web/src/routes/kripke/+page.svelte b/apps/web/src/routes/kripke/+page.svelte
new file mode 100644
index 0000000..69ee43f
--- /dev/null
+++ b/apps/web/src/routes/kripke/+page.svelte
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
diff --git a/apps/web/src/routes/kripke/formula-input.svelte b/apps/web/src/routes/kripke/formula-input.svelte
new file mode 100644
index 0000000..03257ce
--- /dev/null
+++ b/apps/web/src/routes/kripke/formula-input.svelte
@@ -0,0 +1,25 @@
+
+
+
diff --git a/packages/kripke/parser.ts b/packages/kripke/parser.ts
index 44dcfa4..42bc6a4 100644
--- a/packages/kripke/parser.ts
+++ b/packages/kripke/parser.ts
@@ -146,3 +146,11 @@ EXP.setPattern(
export function parse(expr: string): Formula {
return expectSingleResult(expectEOF(EXP.parse(lexer.parse(expr))));
}
+
+export function tryParse(expr: string): Formula | undefined {
+ try {
+ return parse(expr);
+ } catch {
+ return undefined;
+ }
+}
diff --git a/packages/kripke/syntax.ts b/packages/kripke/syntax.ts
index ac06634..787d2ec 100644
--- a/packages/kripke/syntax.ts
+++ b/packages/kripke/syntax.ts
@@ -79,11 +79,11 @@ export const unicodeSymbols: Symbols = {
};
export const latexSymbols: Symbols = {
- top: "\\top",
- bot: "\\bot",
- box: "\\Box",
- diamond: "\\Diamond",
- not: "\\neg",
+ top: "\\top ",
+ bot: "\\bot ",
+ box: "\\Box ",
+ diamond: "\\Diamond ",
+ not: "\\neg ",
and: "\\land",
or: "\\lor",
to: "\\to",