Prerequisites

You'll need to have pre-agreed access to imandra-server local installation with us for this to work, imandra-server is not available locally as standard.

You'll also need docker installed so the Imandra clients can run the imandra-server docker image.

Installation

Imandra Client

First, run the normal local Imandra client installation process, following the Simple installation instructions.

Next, tell your Imandra client to use a local docker image for imandra-server:

$ echo 'imandra/imandra-server' > ~/.imandra/server-image

Your local Imandra clients will now try to launch the server component locally inside a docker container. To switch back to using our cloud for imandra-server, remove the ~/.imandra/server-image file.

Imandra Server

We provide access to a Docker registry containing the imandra-server image, but initially we may provide the image in the form of a .tar.gz archive while we're coordinating access.

Note that the .tar.gz archive only contains a single version of the server image and may stop working as your local Imandra clients auto-update.

Loading Server as Tar file

The .tar.gz archive can be loaded into a local docker image as a substitute for it being fetched automatically from our registry (substituting <server-version> with the value in your tar archive filename):

$ docker load -i imandra-server_<server-version>.tar.gz
Loaded image: imandra/imandra-server:<server-version>

You can check which version of imandra-server your local Imandra installation expects by running:

$ imandra core repl -no-backend -v
Imandra v1.0.5
(c)Copyright Imandra Inc., 2014-2020. All rights reserved.

* Build commit ID <server-version>.

and observing the value of <server-version> that is output. If the version doesn't match, please contact us for an updated server .tar.gz archive for the newer version, or for image repository access.

Pulling Server from DockerHub

If we've configured your access to our image repository, you will need to login with docker on the authenticated dockerhub account:

$ docker login

Make sure you can pull an image from the repository without issue to confirm everything is setup:

$ docker pull imandra/imandra-server:latest

The Imandra client should now fetch new server images at the correct version automatically.

Now you should be able to use Imandra Core commands, such as imandra core repl and the Imandra VSCode extension without connecting to our reasoning cloud.