New to the project? Start here:
- README.md - Project overview and quick start
- docs/README.md - Comprehensive introduction to the Natural Deduction system
- docs/SETUP.md - Installation, configuration, and running the application
- docs/QUICK-REFERENCE.md - Common commands and workflows
Learn about the architecture and design:
- docs/ARCHITECTURE.md - System design, layered architecture, and plugin structure
- docs/MODULES.md - Detailed descriptions of each module and their dependencies
- docs/LANGUAGES.md - Specifications for classical and modal propositional logic
Contribute to the project:
- docs/DEVELOPMENT.md - Contributing guidelines, adding new features, and best practices
- docs/API.md - REST API endpoints and request/response formats
natural-deduction/
├── README.md [Start here - overview]
├── docs/
│ ├── README.md [Complete introduction]
│ ├── SETUP.md [Installation & running]
│ ├── ARCHITECTURE.md [System design]
│ ├── MODULES.md [Module reference]
│ ├── LANGUAGES.md [Logic specifications]
│ ├── DEVELOPMENT.md [Contributing]
│ ├── API.md [REST API reference]
│ ├── QUICK-REFERENCE.md [Common commands & workflows]
│ └── INDEX.md [This file]
├── domain/ [Core business logic]
├── executable/ [Spring Boot application]
├── rest/ [REST API layer]
└── frontend/ [React UI]
I want to...
| Goal | Document |
|---|---|
| Understand what this project does | README.md |
| Get the project running | SETUP.md |
| Quick build/run commands | QUICK-REFERENCE.md |
| Understand the system architecture | ARCHITECTURE.md |
| Learn about modules | MODULES.md |
| Understand the logic systems | LANGUAGES.md |
| Add a new feature | DEVELOPMENT.md |
| Use the REST API | API.md |
| Contribute code | DEVELOPMENT.md |
README.md (root)
↓
docs/README.md
├─→ SETUP.md [How to get it running]
│ └─→ Application configuration
│
├─→ ARCHITECTURE.md [How it works]
│ ├─→ MODULES.md [What are the components]
│ │ └─→ Specific module pom.xml files
│ │
│ └─→ Component interaction flow
│
├─→ LANGUAGES.md [What logic systems are supported]
│ ├─→ Classical propositional logic rules
│ └─→ Modal propositional logic rules
│
└─→ DEVELOPMENT.md [How to extend it]
├─→ Adding new logical systems
├─→ Adding new rules
├─→ Contributing guidelines
└─→ Testing best practices
└─→ API.md [How to use the REST API]
├─→ Classical endpoints
├─→ Modal endpoints
└─→ System endpoints
- Framework modules define contracts
- Implementation modules provide concrete logic
- Easy to add new logical systems
- See: ARCHITECTURE.md
- Logic Language Layer: How formulas are represented
- Proof Structures Layer: How rules are applied
- Use Cases Layer: Application orchestration
- REST/Frontend: User interface
- See: ARCHITECTURE.md and MODULES.md
- Classical Logic: Standard propositional calculus
- Modal Logic: Extends classical with □ (necessity) and ◇ (possibility)
- See: LANGUAGES.md
- Introduction and elimination rules for each operator
- Proper handling of assumptions and discharges
- World/state management for modal logic
- See: LANGUAGES.md and API.md
| Layer | Technology | Documentation |
|---|---|---|
| Backend | Java 21, Spring Boot 3.3.2 | SETUP.md |
| Frontend | React 18, TypeScript | SETUP.md |
| Build | Maven | SETUP.md |
| Testing | JUnit 5, Jest, PIT | SETUP.md |
| Quality | SonarCloud, JaCoCo | DEVELOPMENT.md |
Q: How do I get started with development? A: See SETUP.md for installation, then DEVELOPMENT.md for contribution guidelines.
Q: What's the difference between classical and modal logic? A: See LANGUAGES.md for detailed specifications of both systems.
Q: How do I add support for a new logic system? A: See DEVELOPMENT.md section "Adding a New Logical System".
Q: How does the REST API work? A: See API.md for complete endpoint reference and examples.
Q: How are the modules organized? A: See MODULES.md for module hierarchy and dependencies.
Q: What's the architecture? A: See ARCHITECTURE.md for system design and component relationships.
All documents use standard Markdown with:
- Clear section headings (H2-H4)
- Code blocks with syntax highlighting
- Internal links to related documents
- Tables for reference information
- ASCII diagrams for complex concepts
When updating documentation:
- Keep language clear and concise
- Include code examples where applicable
- Link to related documents
- Update this INDEX.md if adding new documents
- Use consistent formatting
- Natural Deduction on Wikipedia
- Propositional Calculus
- Modal Logic
- Kripke Semantics
- GitHub Repository
This documentation was created on 2024-01-15. Refer to git history for version changes.