Starts a good tracing interface

This commit is contained in:
2026-02-09 16:40:51 +01:00
parent 0f721e34c4
commit a151b772aa
7 changed files with 54 additions and 6 deletions

View File

@ -5,6 +5,7 @@ use litemap::LiteMap;
use crate::ast::Body;
use crate::ast::Predicate;
use crate::ast::Variable;
use crate::prover::tracing::colored_var;
#[derive(Clone, Debug)]
pub struct Constraints
@ -187,7 +188,7 @@ impl Display for Constraints
let len = self.set.len();
for (i, (var, pred)) in self.set.iter().enumerate()
{
write!(f, "{} = {}", var, pred)?;
write!(f, "{} = {}", colored_var(var), pred)?;
if i != len - 1
{
write!(f, ", ")?;

View File

@ -1,6 +1,9 @@
use std::{default, fmt::Display};
use log::info;
use owo_colors::{OwoColorize, colors::css::Gray};
use crate::ast::Variable;
#[derive(Clone, Copy)]
pub enum ProofType
@ -61,3 +64,18 @@ impl Tracer for SimpleTracer
todo!()
}
}
pub fn colored_var(var: &Variable) -> String
{
let mut idx = None;
for (i, char) in var.chars().enumerate()
{
if char == '['
{
idx = Some(i);
}
}
let (var, unique) = var.split_at(idx.unwrap_or(var.len()));
let unique = unique.fg::<Gray>();
format!("{}{}", var, unique)
}