Skip to content

Fails to turn into correct MathJSON #13

@stefnotch

Description

@stefnotch

I went through some mathematics notes and found the following interesting equations. I tested them on the compute engine demo page https://cortexjs.io/compute-engine/demo/

(Information for myself: Page 1 of ANA_UE_SS_21_Mo_1.pdf , meaning there are a few more testcases)

  • \begin{equation*} N(\varepsilon)\coloneq\lceil\frac{4}{\varepsilon^2}\rceil \end{equation*}
    image
    turns into "" syntax-error

  • \begin{equation*} x_{1,2}=1,2 \end{equation*}
    image
    turns into ["Equal", ["Subscript", "x", {num: "12"}], {num: "12"}]. Notice how the comma is missing

  • \begin{equation*} \{1,2\} \end{equation*}
    image
    turns into ["Multiply", "\\{", {num: "12"}, "\\}"]. I assume this happens because sets haven't been implemented yet

  • \begin{equation*} [1,2] \end{equation*}
    image
    turns into "" syntax-error. I assume this happens because vectors/matrices and the like haven't been implemented yet.



  • \begin{equation*} \frac{2}{\sqrt{n}}\Leftrightarrow n>\frac{5}{n^2} \end{equation*}
    image
    turns into the following, notice how \\Leftrightarrow doesn't have a special meaning and its precedence is off
[
  "Greater",
  [
    "Multiply",
    ["Divide", 
      {num: "2"}, ["Sqrt", "n"]],
    "\\Leftrightarrow",
    "n"
  ],
  ["Divide", 
    {num: "5"}, ["Power", "n", 2]]
]


  • \begin{equation*} |a_n|\le\frac{2}{\sqrt{n}}\Rightarrow a_n\to0=0 \end{equation*}
    image
    turns into the following, notice how \\Rightarrow doesn't have a special meaning (implies) and its precedence is off.
[
  "LessEqual",
  ["Abs", ["Subscript", "a", "n"]],
  [
    "Equal",
    [
      "To",
      [
        "Multiply",
        ["Divide", 
          {num: "2"}, ["Sqrt", "n"]],
        "\\Rightarrow",
        ["Subscript", "a", "n"]
      ],
      
      {num: "0"}
    ],
    
    {num: "0"}
  ]
]
  • \begin{equation*} 3\equiv5\mod7 \end{equation*} or also \begin{equation*} 3\equiv 5 (\mod 7) \end{equation*}
    image
    This is a congruence relation. I assume this is simply something that hasn't been implemented yet. Hopefully it's a good test case for round-tripping

  • \begin{equation*} a={\displaystyle \lim_{n\to\infin}a_n} \end{equation*}
    image
    turns into

["Equal", "a", "Missing"]
syntax-error
  • \begin{equation*} \forall x\in\C^2:|x|<0 \end{equation*}
    image
    turns into the following
[
  "Element",
  ["Multiply", "\\forall", "x"],
  ["Power", "ComplexNumber", 2]
]
syntax-error
  • \begin{equation*} \forall n\colon a_n\le c_n\le b_n\implies\lim_{n\to\infin}c_n=a \end{equation*}
    image
    turns into the following, note how a few operators aren't parsed and how the precedences for other operators are slightly off. I think the correct order of operations in this case would start at the :, then the => and then the normal rules. Another interesting tidbit here are the two <= signs. While a comparison would usually return a boolean value (true/false), here the comparisons are more like a range.
    The expression is a part of the squeeze theorem.
[
  "LessEqual",
  [
    "Multiply",
    "\\forall",
    "n",
    "\\colon",
    ["Subscript", "a", "n"]
  ],
  [
    "LessEqual",
    ["Subscript", "c", "n"],
    [
      "Equal",
      [
        "Multiply",
        ["Subscript", "b", "n"],
        "\\implies",
        ["Subscript", "\\lim", ["To", "n", "\\infin"]],
        ["Subscript", "c", "n"]
      ],
      "a"
    ]
  ]
]

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions