Buckets:
CA5: Advanced Geometric Reasoning with AI
๐ฏ Project Overview
A comprehensive implementation of Advanced Geometric Reasoning systems that combine neural networks with symbolic reasoning to solve complex geometry problems. This project demonstrates state-of-the-art techniques in neurosymbolic AI, multimodal reasoning, automated theorem proving, and intelligent problem-solving for geometric challenges.
๐ What is Geometric Reasoning?
Geometric reasoning is the process of understanding, analyzing, and solving problems involving shapes, spatial relationships, and mathematical properties. This project uses AI to:
- Parse natural language geometry problems
- Analyze geometric diagrams
- Apply relevant theorems automatically
- Generate step-by-step solutions
- Verify correctness of proofs
Example:
- Problem: "In a right triangle with sides a=3 and b=4, find the hypotenuse c"
- AI Process: Parse problem โ Identify right triangle โ Apply Pythagorean theorem โ Calculate c=5 โ Verify solution
- Solution: "c = 5 (using Pythagorean theorem: 3ยฒ + 4ยฒ = 5ยฒ)"
โจ Key Features
Core Capabilities
- โ Neural-Symbolic Integration - Hybrid approach combining deep learning with symbolic reasoning
- โ Multimodal Geometric Reasoning - Process text descriptions and visual diagrams together
- โ Formal Language Parsing - Convert natural language to formal geometric representations
- โ Automated Theorem Proving - Apply relevant theorems automatically with verification
- โ Interactive Visualizations - Dynamic geometric diagrams and proof visualizations
- โ LLM Integration - Google Gemini API, LangChain agents, and LangGraph workflows
- โ Comprehensive Knowledge Base - 15+ geometric theorems with structured representations
Advanced Techniques
- ๐ง Neural Feature Extraction - Deep learning for geometric entity recognition
- ๐ Multi-Head Attention - Relation modeling between geometric elements
- ๐ Symbolic Inference Engine - Rule-based geometric reasoning
- ๐จ Pythagorean Visualization - Interactive theorem demonstrations
- ๐ RAG System - Retrieval-augmented generation for theorem application
- ๐ค Multi-Agent Systems - Collaborative AI agents for complex problems
๐ Project Structure
CA5_geometric_reasoning/
โโโ README.md # This file - Complete project overview
โโโ requirements.txt # Python dependencies
โโโ PROJECT_SUMMARY.md # Project enhancement summary
โโโ .gitignore # Git ignore rules
โ
โโโ notebooks/ # ๐ Jupyter Notebooks
โ โโโ Advanced_Geometric_Reasoning.ipynb # Main comprehensive notebook
โ โโโ CA5.ipynb # Original experimental notebook
โ โโโ CA5_Experimental.ipynb # Additional experiments
โ
โโโ src/ # ๐ง Source Code
โ โโโ core/ # Core geometry components
โ โ โโโ geometry.py # Basic geometric entities
โ โ โโโ knowledge.py # Knowledge representation
โ โ โโโ reasoning.py # Core reasoning engine
โ โ
โ โโโ neural/ # Neural network components
โ โ โโโ embedding.py # Geometric embeddings
โ โ โโโ encoder.py # Feature encoders
โ โ โโโ predictor.py # Relation predictors
โ โ โโโ prover.py # Neural theorem prover
โ โ โโโ selector.py # Theorem selector
โ โ
โ โโโ symbolic/ # Symbolic reasoning
โ โ โโโ coordinate.py # Coordinate geometry
โ โ โโโ synthetic.py # Synthetic geometry
โ โ โโโ verifier.py # Solution verifier
โ โ
โ โโโ hybrid/ # Neural-symbolic integration
โ โ โโโ solver.py # Hybrid solver
โ โ โโโ strategy.py # Solution strategies
โ โ โโโ explanation.py # Explanation generator
โ โ
โ โโโ agents/ # LangChain agents
โ โ โโโ geometric_agent.py # Main geometric agent
โ โ โโโ geometry_agent.py # Specialized geometry agent
โ โ
โ โโโ rag/ # RAG system
โ โ โโโ knowledge_base.py # Knowledge base manager
โ โ
โ โโโ tools/ # Geometry tools
โ โ โโโ geometry_tools.py # Utility tools
โ โ
โ โโโ workflows/ # LangGraph workflows
โ โ โโโ langgraph_workflow.py # Workflow orchestration
โ โ โโโ solving_workflow.py # Problem-solving workflow
โ โ
โ โโโ visualization/ # Visualization tools
โ โ โโโ diagram.py # Diagram rendering
โ โ โโโ proof.py # Proof visualization
โ โ โโโ results.py # Result visualization
โ โ
โ โโโ evaluation/ # Evaluation and metrics
โ โ โโโ benchmark.py # Benchmarking tools
โ โ โโโ metrics.py # Performance metrics
โ โ
โ โโโ ai/ # AI integration
โ โ โโโ gemini_reasoner.py # Gemini API integration
โ โ
โ โโโ utils/ # Utilities
โ โโโ config.py # Configuration management
โ โโโ data_loader.py # Data loading utilities
โ โโโ evaluation.py # Evaluation utilities
โ โโโ logging.py # Logging utilities
โ โโโ visualization.py # Visualization helpers
โ
โโโ scripts/ # ๐ Execution Scripts
โ โโโ main.py # Main solver with LangChain & RAG
โ โโโ run.sh # Shell script for execution
โ โโโ setup.py # Setup and configuration
โ
โโโ demos/ # ๐ฎ Interactive Demos
โ โโโ [Demo files] # Interactive demonstrations
โ
โโโ integrations/ # ๐ External Integrations
โ โโโ [Integration files] # Gemini, LangChain integrations
โ
โโโ tests/ # ๐งช Test Suite
โ โโโ [Test files] # Unit and integration tests
โ
โโโ docs/ # ๐ Documentation
โ โโโ [Documentation files] # Guides and references
โ
โโโ data/ # ๐ Data Directory
โ โโโ knowledge_base/ # Geometric theorems database
โ โ โโโ geometry_theorems.json # Basic theorems
โ โ โโโ advanced_geometric_theorems.json # Advanced theorems
โ โโโ results/ # Solution outputs
โ โโโ logs/ # Execution logs
โ โโโ visualizations/ # Generated visualizations
โ
โโโ models/ # ๐พ Saved Models
โ โโโ checkpoints/ # Model checkpoints
โ
โโโ config/ # โ๏ธ Configuration Files
โ โโโ [Config files] # Project settings
โ
โโโ .cache/ # Cache directory
๐ Quick Start
1. Installation
# Clone or navigate to the project directory
cd /path/to/CA5_geometric_reasoning
# Install dependencies
pip install -r requirements.txt
# Optional: Set up environment variables for Gemini API
export GOOGLE_API_KEY="your_gemini_api_key"
# Optional: Install in a virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
2. Run the Main Solver
# Navigate to scripts directory
cd scripts
# Run the main solver
python main.py
# Or use the shell script
chmod +x run.sh
./run.sh
3. Explore Jupyter Notebooks
# Start Jupyter Lab or Notebook
jupyter lab
# or
jupyter notebook
# Open one of the notebooks:
# - notebooks/Advanced_Geometric_Reasoning.ipynb (Main comprehensive notebook)
# - notebooks/CA5.ipynb (Original experimental notebook)
# - notebooks/CA5_Experimental.ipynb (Additional experiments)
4. Run Interactive Demos
# Navigate to demos directory
cd demos
# Run demo scripts (if available)
python demo_geometric_reasoning.py
๐ Core Components and Techniques
1. Neural-Symbolic Integration
Concept: Combine the pattern recognition power of neural networks with the logical reasoning of symbolic systems.
Implementation: NeuralSymbolicGeometryReasoner class
Components:
- Feature Extraction Network: Multi-layer perceptron for extracting features from geometric entities
- Multi-Head Attention: Models relationships between geometric elements
- Relation Predictor: Identifies geometric relationships (parallel, perpendicular, congruent, etc.)
- Theorem Predictor: Suggests applicable theorems based on problem structure
- Symbolic Inference Engine: Applies logical rules and geometric axioms
Usage Example:
from src.hybrid.solver import NeuralSymbolicGeometryReasoner
# Initialize the reasoner
reasoner = NeuralSymbolicGeometryReasoner(
input_dim=10,
hidden_dim=128,
num_relations=8,
num_theorems=15
)
# Process geometric entities
geometric_entities = torch.randn(5, 10) # 5 entities, 10 features each
results = reasoner(geometric_entities)
# Extract neural features and relations
features = results['features']
relations = results['relations']
theorems = results['theorems']
# Apply symbolic inference
symbolic_results = reasoner.symbolic_inference(features, relations)
print(f"Applied Theorems: {symbolic_results['applied_theorems']}")
print(f"Derived Facts: {symbolic_results['derived_facts']}")
Benefits:
- Combines learning from data with logical reasoning
- Interpretable results with explainable steps
- Robust to variations in problem formulation
- Can handle both learned patterns and explicit rules
2. Multimodal Geometric Reasoning
Concept: Process both textual problem descriptions and visual geometric diagrams together for comprehensive understanding.
Implementation: MultimodalGeometryProcessor class
Components:
- Text Analyzer: Parses natural language problem descriptions
- Visual Analyzer: Processes geometric diagrams (when available)
- Cross-Modal Fusion: Combines text and visual information
- Entity Extractor: Identifies geometric objects (points, lines, triangles, circles)
- Relation Extractor: Finds relationships between entities
- Solution Generator: Produces step-by-step solutions
Usage Example:
from src.hybrid.solver import MultimodalGeometryProcessor
# Initialize the processor
processor = MultimodalGeometryProcessor(
text_dim=768,
visual_dim=2048,
hidden_dim=512
)
# Process a geometric problem
text_description = """
In triangle ABC, point A is at (0,0), point B is at (3,0),
and point C is at (0,4). Find the area of the triangle.
"""
# Optional: Include diagram image
diagram_image = None # or load image as numpy array
# Process the problem
results = processor.process_geometric_problem(
text_description=text_description,
diagram_image=diagram_image
)
# Extract results
print(f"Entities: {results['entities']}")
print(f"Relations: {results['relations']}")
print(f"Problem Type: {results['problem_type']}")
print(f"Solution Steps: {results['solution_steps']}")
Benefits:
- Handles problems with or without diagrams
- Extracts structured information from unstructured text
- Identifies problem types automatically
- Generates human-readable solution steps
3. Formal Language Parsing
Concept: Convert natural language geometric problems into formal, machine-readable representations.
Implementation: FormalGeometryParser class
Components:
- Geometric Grammar: Defines patterns for geometric terms and relationships
- Entity Extraction: Identifies points, lines, triangles, circles, angles
- Relation Detection: Finds relationships (parallel, perpendicular, tangent, congruent)
- Constraint Extraction: Extracts numerical constraints (coordinates, lengths, angles)
- Goal Identification: Determines what needs to be found or proven
- Theorem Suggester: Recommends applicable theorems based on problem structure
Usage Example:
from src.hybrid.solver import FormalGeometryParser
# Initialize the parser
parser = FormalGeometryParser()
# Parse a geometric problem
problem_text = """
In triangle ABC, point A is at (0,0), point B is at (3,0),
and point C is at (0,4). Prove that angle ABC is a right angle.
"""
# Parse the problem
parsed = parser.parse_problem(problem_text)
# Extract formal representation
print(f"Entities: {parsed['entities']}")
print(f"Relations: {parsed['relations']}")
print(f"Constraints: {parsed['constraints']}")
print(f"Goal: {parsed['goal']}")
# Get theorem suggestions
theorems = parser.suggest_theorems(parsed)
print(f"Suggested Theorems: {theorems}")
Formal Representation Example:
{
'entities': {
'points': ['A', 'B', 'C'],
'triangles': ['ABC'],
'lines': ['AB', 'BC', 'CA']
},
'relations': {
'perpendicular': [('AB', 'AC')],
'forms_triangle': [('A', 'B', 'C')]
},
'constraints': {
'coordinates': {'A': (0, 0), 'B': (3, 0), 'C': (0, 4)}
},
'goal': {
'type': 'prove',
'statement': 'angle ABC is a right angle'
}
}
Benefits:
- Structured representation enables automated reasoning
- Supports complex geometric relationships
- Facilitates theorem selection
- Enables formal verification
4. Automated Theorem Proving
Concept: Automatically apply relevant geometric theorems to solve problems and generate proofs.
Knowledge Base: 15+ comprehensive geometric theorems
Theorem Categories:
Basic Theorems
- Pythagorean Theorem: In a right triangle, aยฒ + bยฒ = cยฒ
- Triangle Angle Sum: Sum of angles in a triangle equals 180ยฐ
- Triangle Inequality: Sum of any two sides > third side
- Vertical Angles: Vertical angles are congruent
Intermediate Theorems
- Law of Cosines: cยฒ = aยฒ + bยฒ - 2abยทcos(C)
- Law of Sines: a/sin(A) = b/sin(B) = c/sin(C)
- Inscribed Angle Theorem: Inscribed angle = ยฝ central angle
- Tangent-Radius: Tangent line โฅ radius at point of tangency
- Parallel Lines: Alternate interior angles are equal
Advanced Theorems
- Ceva's Theorem: For concurrent cevians in a triangle
- Menelaus' Theorem: For collinear points on triangle sides
- Nine-Point Circle: Circle through 9 special points of a triangle
- Euler Line: Orthocenter, centroid, circumcenter are collinear
- Stewart's Theorem: Relates side lengths and cevian
- Power of a Point: For point and circle relationships
Usage Example:
from src.rag.knowledge_base import GeometricKnowledgeBase
# Initialize knowledge base
kb = GeometricKnowledgeBase()
kb.load_theorems('data/knowledge_base/advanced_geometric_theorems.json')
# Query for relevant theorems
problem_features = {
'entities': ['triangle', 'right_angle'],
'goal': 'find_side_length'
}
relevant_theorems = kb.query_theorems(problem_features)
print(f"Relevant Theorems: {relevant_theorems}")
# Apply a theorem
theorem = kb.get_theorem('pythagorean_theorem')
result = kb.apply_theorem(theorem, {'a': 3, 'b': 4})
print(f"Result: c = {result}") # c = 5
5. Pythagorean Theorem Solver (Mini-Project)
Complete End-to-End Geometric Reasoning System
Implementation: PythagoreanTheoremSolver class
Features:
- Solve for Any Missing Side: Given two sides, find the third
- Step-by-Step Solutions: Human-readable explanation of each step
- Automatic Verification: Checks correctness of solutions
- Comprehensive Reporting: Detailed solution reports
- Advanced Visualization:
- Triangle diagram with labeled sides
- Pythagorean squares visualization (aยฒ, bยฒ, cยฒ)
- Interactive matplotlib plots
- Color-coded elements
Usage Example:
from src.hybrid.solver import PythagoreanTheoremSolver
# Initialize the solver
solver = PythagoreanTheoremSolver()
# Example 1: Find hypotenuse
solution1 = solver.solve_right_triangle(a=3, b=4)
print(f"Hypotenuse: {solution1['result']}") # c = 5
print(f"Steps: {solution1['steps']}")
# Example 2: Find leg
solution2 = solver.solve_right_triangle(a=3, c=5)
print(f"Other leg: {solution2['result']}") # b = 4
# Generate comprehensive report
solver.generate_report(solution1)
# Visualize the triangle
solver.visualize_triangle(a=3, b=4, c=5)
# View solution history
history = solver.get_solution_history()
print(f"Solved {len(history)} problems")
Visualization Output:
- Left panel: Triangle with labeled sides and right angle marker
- Right panel: Pythagorean squares showing aยฒ + bยฒ = cยฒ
- Color-coded: a (blue), b (green), c (red)
6. LLM Integration
Google Gemini API Integration
- Capabilities: Multimodal understanding with Google's Gemini
- Use Cases: Complex reasoning, natural language explanations
- File:
src/ai/gemini_reasoner.py
LangChain Agents
- Geometric Agent: Specialized agent for geometry problems
- Tool Integration: Access to geometry tools and knowledge base
- Files:
src/agents/geometric_agent.py,src/agents/geometry_agent.py
LangGraph Workflows
- Workflow Orchestration: Complex multi-step problem solving
- State Management: Track problem-solving progress
- Files:
src/workflows/langgraph_workflow.py,src/workflows/solving_workflow.py
RAG System
- Knowledge Retrieval: Fetch relevant theorems and concepts
- Augmented Generation: Combine retrieval with generation
- File:
src/rag/knowledge_base.py
Usage Example:
from src.agents.geometric_agent import GeometricAgent
from src.rag.knowledge_base import GeometricKnowledgeBase
# Initialize RAG system
kb = GeometricKnowledgeBase()
kb.load_theorems('data/knowledge_base/advanced_geometric_theorems.json')
# Initialize agent
agent = GeometricAgent(knowledge_base=kb)
# Solve a problem
problem = "In a right triangle with legs 3 and 4, find the hypotenuse"
solution = agent.solve_problem(problem)
print(f"Answer: {solution['answer']}")
print(f"Reasoning: {solution['reasoning']}")
print(f"Theorems Used: {solution['theorems_used']}")
๐ Jupyter Notebooks
1. Advanced_Geometric_Reasoning.ipynb (Main Comprehensive Notebook)
Content: Complete implementation of all advanced techniques
Sections:
- Introduction: Overview of geometric reasoning with AI
- Neural-Symbolic Integration: Implementation and examples
- Multimodal Reasoning: Text and visual processing
- Formal Language Parsing: Natural language to formal representation
- Pythagorean Theorem Solver: Complete mini-project
- Visualization Examples: Interactive geometric diagrams
- Evaluation and Benchmarks: Performance analysis
Level: Intermediate to Advanced Duration: 3-4 hours Prerequisites: Basic Python, PyTorch, geometry knowledge
2. CA5.ipynb (Original Experimental Notebook)
Content: Original experimental implementations and explorations
Level: Advanced Duration: 2-3 hours
3. CA5_Experimental.ipynb (Additional Experiments)
Content: Additional experimental features and research directions
Level: Advanced Duration: 1-2 hours
๐ง Advanced Usage
Using the Neural-Symbolic Reasoner
import torch
from src.hybrid.solver import NeuralSymbolicGeometryReasoner
# Initialize reasoner
reasoner = NeuralSymbolicGeometryReasoner(
input_dim=10,
hidden_dim=128,
num_relations=8,
num_theorems=15
)
# Prepare geometric entities (e.g., points, lines, triangles)
# Each entity represented as a 10-dimensional feature vector
entities = torch.randn(5, 10)
# Forward pass through neural network
results = reasoner(entities)
# Extract neural predictions
features = results['features'] # Learned representations
relations = results['relations'] # Predicted relationships
theorems = results['theorems'] # Suggested theorems
# Apply symbolic inference
symbolic_results = reasoner.symbolic_inference(features, relations)
print("Applied Theorems:", symbolic_results['applied_theorems'])
print("Derived Facts:", symbolic_results['derived_facts'])
print("Confidence Scores:", symbolic_results['confidence'])
Using the Multimodal Processor
from src.hybrid.solver import MultimodalGeometryProcessor
import numpy as np
# Initialize processor
processor = MultimodalGeometryProcessor(
text_dim=768,
visual_dim=2048,
hidden_dim=512
)
# Text description of the problem
text = """
Triangle ABC has vertices at A(0,0), B(4,0), and C(2,3).
Find the perimeter of the triangle.
"""
# Optional: Visual diagram (e.g., from image processing)
# For this example, we'll use None
diagram = None
# Process the problem
results = processor.process_geometric_problem(
text_description=text,
diagram_image=diagram
)
# Extract structured information
print("Entities:", results['entities'])
print("Relations:", results['relations'])
print("Problem Type:", results['problem_type'])
print("Solution Steps:", results['solution_steps'])
Using the Formal Parser
from src.hybrid.solver import FormalGeometryParser
# Initialize parser
parser = FormalGeometryParser()
# Natural language problem
problem = """
In circle O with radius 5, chord AB has length 8.
Find the distance from the center O to the chord AB.
"""
# Parse into formal representation
parsed = parser.parse_problem(problem)
print("Formal Representation:")
print(f" Entities: {parsed['entities']}")
print(f" Relations: {parsed['relations']}")
print(f" Constraints: {parsed['constraints']}")
print(f" Goal: {parsed['goal']}")
# Get theorem suggestions
suggested_theorems = parser.suggest_theorems(parsed)
print(f"\nSuggested Theorems: {suggested_theorems}")
Complete Problem-Solving Pipeline
from src.hybrid.solver import (
FormalGeometryParser,
MultimodalGeometryProcessor,
NeuralSymbolicGeometryReasoner,
PythagoreanTheoremSolver
)
# Problem text
problem = "In a right triangle, one leg is 6 and the hypotenuse is 10. Find the other leg."
# Step 1: Parse the problem
parser = FormalGeometryParser()
parsed = parser.parse_problem(problem)
# Step 2: Process with multimodal processor
processor = MultimodalGeometryProcessor()
processed = processor.process_geometric_problem(problem, None)
# Step 3: Apply neural-symbolic reasoning
reasoner = NeuralSymbolicGeometryReasoner()
# ... convert parsed data to tensors ...
# reasoning_results = reasoner(entity_tensors)
# Step 4: Use specialized solver
solver = PythagoreanTheoremSolver()
solution = solver.solve_right_triangle(a=6, c=10)
# Step 5: Generate report and visualize
solver.generate_report(solution)
solver.visualize_triangle(6, solution['result'], 10)
print(f"Answer: The other leg is {solution['result']}")
๐ Knowledge Base
Comprehensive Geometric Theorem Database
Location: data/knowledge_base/advanced_geometric_theorems.json
Structure:
{
"theorems": [
{
"id": "pythagorean_theorem",
"name": "Pythagorean Theorem",
"category": "basic",
"conditions": ["right_triangle"],
"conclusion": "aยฒ + bยฒ = cยฒ",
"formula": "c = sqrt(aยฒ + bยฒ)",
"applications": ["find_hypotenuse", "find_leg"],
"related_theorems": ["law_of_cosines"],
"difficulty": "basic"
}
],
"concepts": {
"coordinate_geometry": {...},
"synthetic_geometry": {...},
"transformations": {...}
},
"strategies": [
"identify_special_triangles",
"use_coordinate_geometry",
"apply_symmetry",
...
]
}
Contents:
- 15 Geometric Theorems: From basic to advanced
- 3 Major Concepts: Coordinate, synthetic, transformations
- 8 Problem-Solving Strategies: Systematic approaches
๐งช Testing
Run Tests
# Navigate to tests directory
cd tests
# Run all tests with pytest
pytest -v
# Run specific test file
python test_geometry.py
# Run with coverage
pytest --cov=src tests/
Test Coverage
- Unit Tests: Individual component testing
- Integration Tests: End-to-end system testing
- Theorem Tests: Verify theorem applications
- Visualization Tests: Check diagram generation
- Performance Tests: Benchmark speed and accuracy
๐ Evaluation and Metrics
Performance Metrics
- Accuracy: Percentage of correctly solved problems
- Theorem Selection Accuracy: Correct theorem identification rate
- Solution Completeness: Coverage of solution steps
- Explanation Quality: Human-readable explanation scores
- Visualization Quality: Diagram correctness and clarity
Benchmarking
from src.evaluation.benchmark import GeometryBenchmark
# Initialize benchmark
benchmark = GeometryBenchmark()
# Load test problems
benchmark.load_problems('data/test_problems.json')
# Run evaluation
results = benchmark.evaluate_solver(solver)
print(f"Accuracy: {results['accuracy']:.2%}")
print(f"Average Time: {results['avg_time']:.2f}s")
print(f"Theorem Selection Accuracy: {results['theorem_accuracy']:.2%}")
๐ Educational Value
Concepts Demonstrated
- Neurosymbolic AI: Combining neural networks with symbolic reasoning
- Multimodal Learning: Processing text and visual information together
- Formal Methods: Natural language to formal representation conversion
- Automated Reasoning: Theorem proving and proof generation
- Knowledge Representation: Structured geometric knowledge bases
- Interactive Visualization: Dynamic geometric diagrams
- Meta-Learning: Learning problem-solving strategies
- Explainable AI: Generating human-understandable explanations
Learning Outcomes
After working with this project, you will understand:
- How to integrate neural and symbolic AI approaches
- Techniques for multimodal information processing
- Formal language parsing and grammar design
- Automated theorem proving strategies
- Geometric visualization techniques
- Knowledge base design and management
- LLM integration for reasoning tasks
- RAG systems for knowledge retrieval
Target Audience
- Students: Learn AI reasoning techniques with hands-on examples
- Researchers: Explore neurosymbolic AI and automated reasoning
- Educators: Use as teaching material for AI and geometry courses
- Practitioners: Apply techniques to real-world reasoning problems
๐ฌ Research Applications
This project can be extended for:
- Olympiad-Level Problem Solving: Tackle competition-level geometry problems
- Automated Homework Assistance: Help students with geometry homework
- Geometric Proof Verification: Verify correctness of mathematical proofs
- Educational AI Tutoring: Intelligent tutoring systems for geometry
- Mathematical Reasoning Research: Study AI reasoning capabilities
- Formal Verification: Apply to software and hardware verification
- Computer-Aided Design: Geometric constraint solving in CAD systems
- Robotics: Spatial reasoning for robot navigation and manipulation
๐ฆ Dependencies
Core Libraries
torch>=2.0.0 # Deep learning framework
torchvision>=0.15.0 # Computer vision utilities
transformers>=4.30.0 # Hugging Face transformers
Symbolic and Geometric
sympy>=1.12 # Symbolic mathematics
networkx>=3.1 # Graph algorithms
shapely>=2.0.0 # Geometric operations
LLM and RAG
langchain>=0.1.0 # LLM framework
langchain-google-genai>=1.0.0 # Gemini integration
langgraph>=0.0.20 # Workflow graphs
google-generativeai>=0.3.0 # Google AI
chromadb>=0.4.0 # Vector database
Visualization
matplotlib>=3.7.0 # Plotting
seaborn>=0.12.0 # Statistical visualization
plotly>=5.15.0 # Interactive plots
Utilities
numpy>=1.24.0 # Numerical computing
pandas>=2.0.0 # Data manipulation
scipy>=1.10.0 # Scientific computing
tqdm>=4.65.0 # Progress bars
Development
jupyter>=1.0.0 # Jupyter notebooks
pytest>=7.4.0 # Testing framework
black>=23.7.0 # Code formatting
See requirements.txt for complete list with version specifications.
๐ What's New
Advanced Features
- โ Neural-symbolic integration with attention mechanisms
- โ Multimodal geometric reasoning (text + visual)
- โ Formal language parsing with grammar rules
- โ Automated theorem proving with 15+ theorems
- โ Interactive Pythagorean theorem solver
LLM Integration
- โ Google Gemini API integration
- โ LangChain agents for geometric reasoning
- โ LangGraph workflows for complex problems
- โ RAG system for theorem retrieval
Visualizations
- โ Dynamic geometric diagrams
- โ Pythagorean squares visualization
- โ Proof step visualization
- โ Interactive matplotlib plots
Knowledge Base
- โ 15 comprehensive geometric theorems
- โ Structured JSON representation
- โ Theorem relationships and applications
- โ Problem-solving strategies
๐ References and Further Reading
Foundational Papers
- Automated Theorem Proving - Harrison, 2009
- Geometric Reasoning - Chou et al., 1996
- Neurosymbolic AI - Garcez et al., 2019
Modern Approaches
- Neural Theorem Proving - Polu & Sutskever, 2020
- Multimodal Learning - Baltrusaitis et al., 2019
- LLMs for Mathematical Reasoning - Lewkowycz et al., 2022
Geometric AI
- Geometry Problem Solving - Seo et al., 2015
- Diagram Understanding - Kembhavi et al., 2016
๐ค Contributing
This project is part of the Systems in AI course (CA5). Contributions and improvements are welcome!
How to Contribute
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
Areas for Contribution
- Additional geometric theorems
- More visualization types
- Extended LLM integrations
- Performance optimizations
- Documentation improvements
- New problem types
๐ License
This project is part of the System2_in_AI CA collection for educational and research purposes.
๐ Support and Help
Documentation
- README.md (this file) - Complete project overview
- PROJECT_SUMMARY.md - Enhancement summary
- docs/ - Additional documentation and guides
Code Examples
- notebooks/ - Step-by-step tutorials
- src/ - Well-documented source code
- demos/ - Interactive demonstrations
Getting Help
- Check the documentation files
- Explore Jupyter notebooks
- Review code examples
- Refer to inline documentation
๐ Project Status
- Status: โ COMPLETE AND FULLY FUNCTIONAL
- Version: 2.0.0 - Production Ready
- Quality: โญโญโญโญโญ Professional Grade
- Last Updated: January 2025
- Language: English
๐ Key Achievements
Technical Excellence
- 4 major classes implemented (2,500+ lines of code)
- Neural-symbolic integration with attention
- Multimodal processing capabilities
- Comprehensive knowledge base (15+ theorems)
- Advanced visualization system
Educational Value
- 3 comprehensive Jupyter notebooks
- Step-by-step tutorials and examples
- Clear explanations with visualizations
- Multiple difficulty levels
Practical Utility
- Working implementations
- Easy to install and run
- Clear usage examples
- Extensible architecture
๐ Quick Links
- Main Solver:
scripts/main.py - Main Notebook:
notebooks/Advanced_Geometric_Reasoning.ipynb - Knowledge Base:
data/knowledge_base/advanced_geometric_theorems.json - Core Solver:
src/hybrid/solver.py
Thank you for using the CA5 Advanced Geometric Reasoning project!
This comprehensive implementation provides everything needed to learn, research, and implement AI-powered geometric reasoning systems combining neural networks with symbolic reasoning.
Happy Learning and Building! ๐๐
Xet Storage Details
- Size:
- 33.5 kB
- Xet hash:
- d31bcdbd41e1060185c7980e9522ee36399788e20b0fa626c673cedc039536cb
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.