struct DifferentiableLogic
Differentiable logic gate with soft/fuzzy semantics. Allows end-to-end gradient flow through logical operations.
Source: neurosymbolic.joule:27
struct DifferentiableLogicDifferentiable logic gate with soft/fuzzy semantics. Allows end-to-end gradient flow through logical operations.
Source: neurosymbolic.joule:27
fn new(temperature: f64) -> SelfCreate a new differentiable logic module.
Source: neurosymbolic.joule:34
fn default() -> SelfDefault temperature (1.0)
Source: neurosymbolic.joule:39
fn and(&self, a: &Tensor, b: &Tensor) -> TensorSource: neurosymbolic.joule:46
fn or(&self, a: &Tensor, b: &Tensor) -> TensorSource: neurosymbolic.joule:53
fn not(&self, a: &Tensor) -> TensorSource: neurosymbolic.joule:62
fn implies(&self, a: &Tensor, b: &Tensor) -> TensorSource: neurosymbolic.joule:69
fn equiv(&self, a: &Tensor, b: &Tensor) -> TensorSource: neurosymbolic.joule:79
fn forall(&self, tensor: &Tensor, dim: i64) -> TensorSource: neurosymbolic.joule:87
fn exists(&self, tensor: &Tensor, dim: i64) -> TensorSource: neurosymbolic.joule:97
fn godel_and(&self, a: &Tensor, b: &Tensor) -> TensorSource: neurosymbolic.joule:106
fn godel_or(&self, a: &Tensor, b: &Tensor) -> TensorSource: neurosymbolic.joule:112
fn lukasiewicz_and(&self, a: &Tensor, b: &Tensor) -> TensorSource: neurosymbolic.joule:119
fn lukasiewicz_or(&self, a: &Tensor, b: &Tensor) -> TensorSource: neurosymbolic.joule:128
struct PredicateA predicate in a Logic Tensor Network.
Source: neurosymbolic.joule:138
fn unary(name: &str, embedding_dim: usize, hidden_dim: usize) -> SelfCreate a unary predicate (e.g., "is_cat(x)").
Source: neurosymbolic.joule:149
fn binary(name: &str, embedding_dim: usize, hidden_dim: usize) -> SelfCreate a binary predicate (e.g., "likes(x, y)").
Source: neurosymbolic.joule:165
fn evaluate(&self, args: &[&Tensor]) -> TensorSource: neurosymbolic.joule:182
enum FormulaA formula in first-order logic.
Source: neurosymbolic.joule:196
enum TermA term in a formula.
Source: neurosymbolic.joule:223
struct RuleA rule with a weight for soft constraints.
Source: neurosymbolic.joule:231
fn new(name: &str, formula: Formula, weight: f64) -> SelfCreate a new rule.
Source: neurosymbolic.joule:242
fn implies(name: &str, antecedent: Formula, consequent: Formula, weight: f64) -> SelfCreate an implication rule: antecedent → consequent
Source: neurosymbolic.joule:251
struct LogicTensorNetworkLogic Tensor Network for neurosymbolic reasoning.
Source: neurosymbolic.joule:257
fn new(num_entities: usize, embedding_dim: usize) -> SelfCreate a new LTN.
Source: neurosymbolic.joule:272
fn add_predicate(&mut self, predicate: Predicate)Add a predicate.
Source: neurosymbolic.joule:283
fn add_unary_predicate(&mut self, name: &str, hidden_dim: usize)Add a unary predicate.
Source: neurosymbolic.joule:288
fn add_binary_predicate(&mut self, name: &str, hidden_dim: usize)Add a binary predicate.
Source: neurosymbolic.joule:293
fn add_rule(&mut self, rule: Rule)Add a rule.
Source: neurosymbolic.joule:298
fn embed(&self, entity_id: usize) -> TensorGet entity embedding.
Source: neurosymbolic.joule:303
fn evaluate_atom(&self, predicate: &str, args: &[usize]) -> TensorSource: neurosymbolic.joule:310
fn rule_loss(&self, sample_entities: &[usize]) -> TensorSource: neurosymbolic.joule:326
fn evaluate_formula(&self, formula: &Formula, entities: &[usize]) -> TensorEvaluate a formula on a sample of entities.
Source: neurosymbolic.joule:341
fn train_step<O: Optimizer>(&mut self, optimizer: &mut O, sample_entities: &[usize]) -> f64Source: neurosymbolic.joule:394
enum KGEmbeddingMethodSupported knowledge graph embedding methods.
Source: neurosymbolic.joule:411
struct TripleA triple in a knowledge graph: (head, relation, tail)
Source: neurosymbolic.joule:423
struct KnowledgeGraphKnowledge Graph with learnable embeddings.
Source: neurosymbolic.joule:430
fn new(Create a new knowledge graph.
Source: neurosymbolic.joule:451
fn add_triple(&mut self, head: usize, relation: usize, tail: usize)Add a triple.
Source: neurosymbolic.joule:470
fn score(&self, head: usize, relation: usize, tail: usize) -> TensorSource: neurosymbolic.joule:476
fn get_entity_embedding(&self, entity: usize) -> TensorGet entity embedding.
Source: neurosymbolic.joule:508
fn get_relation_embedding(&self, relation: usize) -> TensorGet relation embedding.
Source: neurosymbolic.joule:514
fn margin_loss(&self, positive: &Triple, negative: &Triple) -> TensorSource: neurosymbolic.joule:521
fn train_step<O: Optimizer>(Source: neurosymbolic.joule:532
fn predict_tail(&self, head: usize, relation: usize, top_k: usize) -> Vec<(usize, f64)>Source: neurosymbolic.joule:557
struct VariableA variable in a constraint satisfaction problem.
Source: neurosymbolic.joule:577
fn new(name: &str, domain_size: usize) -> SelfCreate a new variable.
Source: neurosymbolic.joule:588
fn probabilities(&self) -> TensorGet probability distribution over domain.
Source: neurosymbolic.joule:599
fn assignment(&self) -> usizeGet most likely assignment.
Source: neurosymbolic.joule:604
trait Constraint: Send + SyncA constraint in a CSP.
Source: neurosymbolic.joule:610
fn evaluate(&self, variables: &HashMap<String, &Variable>) -> Tensor;Evaluate satisfaction (0 = violated, 1 = satisfied).
Source: neurosymbolic.joule:612
fn variables(&self) -> Vec<String>;Get involved variable names.
Source: neurosymbolic.joule:615
struct BinaryConstraintBinary constraint: two variables must satisfy a relation.
Source: neurosymbolic.joule:619
fn all_different(var1: &str, var2: &str, domain_size: usize) -> SelfCreate an all-different constraint.
Source: neurosymbolic.joule:628
fn equal(var1: &str, var2: &str, domain_size: usize) -> SelfCreate an equality constraint.
Source: neurosymbolic.joule:641
fn evaluate(&self, variables: &HashMap<String, &Variable>) -> TensorSource: neurosymbolic.joule:651
fn variables(&self) -> Vec<String>Source: neurosymbolic.joule:660
struct NeuralCSPNeural Constraint Satisfaction Problem solver.
Source: neurosymbolic.joule:666
fn new() -> SelfCreate a new CSP.
Source: neurosymbolic.joule:675
fn add_variable(&mut self, name: &str, domain_size: usize)Add a variable.
Source: neurosymbolic.joule:683
fn add_constraint(&mut self, constraint: Box<dyn Constraint>)Add a constraint.
Source: neurosymbolic.joule:688
fn total_satisfaction(&self) -> TensorSource: neurosymbolic.joule:694
fn loss(&self) -> TensorSource: neurosymbolic.joule:711
fn solve(&mut self, max_iterations: usize, learning_rate: f64) -> boolSource: neurosymbolic.joule:718
fn assignments(&self) -> HashMap<String, usize>Get current assignments.
Source: neurosymbolic.joule:745
struct NeuralRuleA neural rule with learned confidence.
Source: neurosymbolic.joule:757
fn new(name: &str, antecedents: Vec<String>, consequent: String) -> SelfCreate a new rule.
Source: neurosymbolic.joule:770
struct NeuralRuleEngineNeural rule engine for reasoning.
Source: neurosymbolic.joule:781
fn new() -> SelfCreate a new rule engine.
Source: neurosymbolic.joule:790
fn add_rule(&mut self, rule: NeuralRule)Add a rule.
Source: neurosymbolic.joule:798
fn forward_chain(Source: neurosymbolic.joule:804
fn test_differentiable_logic()Source: neurosymbolic.joule:868
fn test_knowledge_graph()Source: neurosymbolic.joule:889
fn test_neural_csp()Source: neurosymbolic.joule:900