MimIR 0.1
MimIR is my Intermediate Representation
Loading...
Searching...
No Matches
core.h File Reference
#include <mim/axiom.h>
#include <mim/world.h>
#include "mim/plug/core/autogen.h"
Include dependency graph for core.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  mim
 
namespace  mim::plug
 
namespace  mim::plug::core
 The core Plugin
 

Functions

%core.trait
const Defmim::plug::core::op (trait o, const Def *type)
 
%core.pe
const Defmim::plug::core::op (pe o, const Def *def)
 
%core.bit2
constexpr std::array< std::array< u64, 2 >, 2 > mim::plug::core::make_truth_table (bit2 id)
 
extract_unsafe
const Defmim::plug::core::extract_unsafe (const Def *d, const Def *i)
 
const Defmim::plug::core::extract_unsafe (const Def *d, u64 i)
 
insert_unsafe
const Defmim::plug::core::insert_unsafe (const Def *d, const Def *i, const Def *val)
 
const Defmim::plug::core::insert_unsafe (const Def *d, u64 i, const Def *val)
 
Convert TBound to Sigma

This is WIP.

template<bool up>
const Sigmamim::plug::core::convert (const TBound< up > *b)
 
const Sigmamim::plug::core::convert (const Bound *b)
 
is_commutative/is_associative
constexpr bool mim::is_commutative (plug::core::nat id)
 
constexpr bool mim::is_commutative (plug::core::ncmp id)
 
constexpr bool mim::is_commutative (plug::core::wrap id)
 
constexpr bool mim::is_commutative (plug::core::icmp id)
 
constexpr bool mim::is_commutative (plug::core::bit2 id)
 
constexpr bool mim::is_associative (plug::core::bit2 id)
 
constexpr bool mim::is_associative (plug::core::nat id)
 
constexpr bool mim::is_associative (plug::core::ncmp id)
 
constexpr bool mim::is_associative (plug::core::icmp id)
 
constexpr bool mim::is_associative (plug::core::wrap id)
 

Mode

enum class  mim::plug::core::Mode : nat_t {
  mim::plug::core::none = 0 ,
  mim::plug::core::nsw = 1 << 0 ,
  mim::plug::core::nuw = 1 << 1 ,
  mim::plug::core::nusw = nuw | nsw
}
 
using mim::plug::core::VMode = std::variant<Mode, nat_t, const Def*>
 Give Mode as mim::plug::math::Mode, mim::nat_t or const Def*.
 
const Defmim::plug::core::mode (World &w, VMode m)
 mim::plug::core::VMode -> const Def*.